728x90
📚 Today's TODO
✅ 스프링 토이 프로젝트
✅ 코테 문제 어제꺼
✅ 코테 문제 오늘꺼
✅ 잔디 인증
📡 새로 알게 된 내용
- 어제 코테 문제가 벨만 포드 알고리즘 문제여서 한번 정리했다.
99클럽 코테 스터디 1일차 TIL + [백준 11657] 벨만 포드 알고리즘
🔗 백준 11657 📌오늘의 학습 키워드벨만 포드 알고리즘✨공부한 내용 본인의 언어로 정리하기벨만 포드는 최적의 상황(다익스트라)를 포함하고 있다. 벨만 포드는 다익스트라와 달리 모든
daily-programming-til.tistory.com
🗃️ 스프링 핵심 원리
- Bean scope: 특히 웹 스코프가 흥미로웠는데, http 요청이 들어오면 그 요청이 나갈때까지 생명주기를 갖는 다는 점이 흥미로웠다. (어떻게 아는겨)
- 이것을 구현할 대 provider를 쓰거나 프록시를 사용하는 방법이 있는데 핵심 아이디어는 진짜 객체 조회를 필요한 시점까지 지연처리 하는 점이다.
🚂 스프링 토이프로젝트 - 메모 매니저 (https://github.com/Layla7120/Simple-Memo-Manager)
(지금까지 배운 내용을 갖고 토이프로젝트를 하나 해봤다.)
- Domain: 핵심 비즈니스 로직과 데이터를 표현하는 계층
- Repository: 데이터베이스의 상호작용을 캡슐화함
- Service: 애플리케이션의 비즈니스 로직을 구현
- Controller: 클라이언트의 요청을 받아 적절한 Service 계층 메서드를 호출하고 결과를 반환
- EntityManager
- persist: 이걸로 데이터를 저장하던데, 정확히 따지자면 바로 DB 에 저장되는 건 commit 이 일어나고 나서고 영속성 컨텍스트에 저장된다는 뜻이라고 한다.
- @Transactional 을 사용하면 정상 실행시 커밋된다. 아니면 롤백 - 테스트에서도 롤백된다.
🎛️ 오늘의 TroubleShooting
- DB에 createdAt이 자꾸 null값으로 들어가는 현상
- persist를 통해서 DB commit을 하는 데 만약 그 객체에 createdAt이 null 값으로 설정되면 아무리 create Table 값에 default로 지정을 해줘도 null 값이 들어간다.
@Column(nullable = false, updatable = false, insertable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
이것을 추가해서 해결했다.
👻 오늘 하루 복기
JPA를 제대로 알지 못하는 상태에서 토이프로젝트를 진행하려고 하니까 기능 구현에 한계가 있었다. 하지만 lombok을 사용해 보고 어떻게 의존성이 주입되는 지 알아보는 시간을 가져 좋았다. 거의 클론 코딩이긴 했지만...ㅎㅎ 데이터베이스에 연결하는 방법과 데이터 객체를 어떻게 처리하는지, 클라이언트 요청이 왔을 때 어떻게 처리하는 지 중심으로 알아보면 좋겠다고 생각했다. 그쪽 지식이 좀 부족한거 같다. 토이 프로젝트를 해보니까 어떤 부분에 중점을 두고 공부해야할 지 감이 좀 잡혀서 좋았다.
내일부터 다시 MVC 패턴 관련 강의를 수강하고, 정처기 시험 준비도 해야한다..! 자꾸 코테 문제 복습하는 게 내일로 넘어가는 거 같긴하지만 암튼 열심히 해보겠다!
728x90
'TIL' 카테고리의 다른 글
TIL - Servlet (0) | 2025.01.16 |
---|---|
TIL - Steamlit (0) | 2025.01.15 |
TIL - 스프링 (0) | 2025.01.13 |
TIL - 스프링 (0) | 2025.01.10 |
TIL - 스프링의 DIP (0) | 2025.01.09 |