🎆 생존을 위한 취미 개발 이외에도 마음 쏟을 무언가, 즐거움이 되는 무언가가 꼭 필요한 것 같습니다. 그리고 아마 이것은 개발이 아닌 다른 일을 업으로 삼더라도 그러할 것입니다. 성과가 당장 없음에도 계속해서 노력을 투입해야 하는 시기가 있기 때문입니다. 눈에 보이지 않아도 계속해서 노력을 부어야 하는 그 때, 주의를 환기시킬 무언가가 있다면, 노력해서 성취감을 느낄 수 있는 또다른 원천이 있다면, 본업에서 만날 슬럼프를 조금 더 초연하게 대처할 수 있지 않을까요? 저는 우테코 레벨1에서 큰 슬럼프를 만났습니다. 그래서 나름의 발버둥으로 취미를 붙들었습니다. 처음으로 커피도 배워보고, 놓았던 기타도 다시 잡았습니다. ☕ 처음 만난 커피 4주간 매주 1번씩 카페에 방문해 수업을 들었습니다. 꽤나 재미가 ..
전체 코드 보러 가기 ❌ Don't try this at home 호기심에 실험적으로 도전한 내용입니다. 오직 목적한 바에만 몰입하여 구현에만 집중했습니다. 코드 품질은 무시했으니 재미로 봐주시면 감사하겠습니다. ✍️ 제작 동기 레벨2 지하철 노선도 미션에서 Line, Station, Section 이라는 세 도메인을 만났습니다. 각 도메인 별 Dao가 만들어지고 유사한 CRUD로직이 나타나고 있었습니다. 이들을 하나의 CRUD로 추상화해서 중복을 제거해보고 싶었습니다. JPA를 아주 살짝 사용해본 경험과, 미션의 예시 코드에서 ReflectionUtils를 사용한 내용이 힌트가 되었습니다. Jackson 라이브러리가 JSON 객체를 직렬화, 역직렬화 하는 과정에서 기본 생성자로 인스턴스를 생성한 뒤, ..
Component, Repository, Service 애너테이션 중 무엇을 사용하더라도 Spring Bean에 등록되는 건 동일합니다. 그럼 어떤 차이가 있고, 둘을 구분해서 사용하는 기준은 무엇일까요? 1. 🔎 Component Scan 스프링은 설정된 범위를 탐지해 Spring Bean으로 생성해 Application Context에 보관합니다. 모든 클래스를 Spring Bean으로 생성해두는 것은 아니고, 그러하도록 선언된 클래스들을 생성합니다. Spring Bean으로 생성하도록 선언하는 방법은 크게 세 가지가 있습니다. XML 선언 방법은 이젠 잘 사용되지 않는 방법입니다. @Configuration 클래스 내부에 @Bean 메서드로 선언하는 방법도 있습니다. 마지막으로 가장 많이 사용되는 ..
매번 스팸으로 여겨왔던 Jet Brain의 메일. 무슨 바람이 불었는지 갑자기 이번 4월호는 읽어보고 싶었는데요, 이번 4월 Java Annotated Monthly 를 열어보니 흥미로운 컨텐츠가 정말 많았어요. 이번 포스팅은 그중 다음 영상을 보고 학습한 내용을 정리한 내용입니다. 추가적으로 영상 링크 하단의 포스팅도 참고했습니다. Spring Constructor Injection: Why is it the recommended approach to Dependency Injection? [Spring] 다양한 의존성 주입 방법과 생성자 주입을 사용해야 하는 이유 - (2/2) 1. 📘 용어 정리 본격적인 논의에 앞서 먼저 정리가 필요한 용어들을 짚어봅니다 Spring Bean Bean is just..
우아한테크코스에서는 각 레벨을 마칠 때마다 학습한 내용을 레벨 로그로 정리하고, 이를 토대로 인터뷰를 진행합니다. 나의 변화와 성장을 내가 확인하고, 어디까지 아는지, 어느 부분을 잘 모르는지 메타인지를 기를 수 있는 시간입니다. 1. ✍🏻 레벨 로그 레벨 1 동안 총 12개의 프롤로그를 작성했습니다. 그 내용들을 토대로 제가 학습했던 내용을 요약해서 레벨 로그로 작성했습니다. 돌아보니 블로그에 포스팅했던 내용 중 일부도 빠져있고, 독서했던 내용도 빠져있는데, 다음 레벨 로그에는 조금 더 촘촘하게 레벨 로그를 작성해서 인터뷰 시에 더 풍성한 질문 답변이 되게 하고 싶습니다. EnumMap에 대해 학습했던 내용, for-loopr과 IntStream을 비교했던 내용을 다루지 않은 점이 특히 아쉽네요. 😅 ..