TIL

TIL - 스프링 토이 프로젝트

yolang 2025. 1. 14. 22:27
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