매번 스팸으로 여겨왔던 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을 비교했던 내용을 다루지 않은 점이 특히 아쉽네요. 😅 ..
Level 1 체스 미션 중, 반복 수행되는 DB 여러 행의 삽입을 최적화하기 위해 고민한 내용을 적어봤습니다. 1. Console 버전 체스 초기판 구성 private static final Map INITIAL_BOARD = new HashMap(); static { setupOthersPieces(RANK_EIGHT, Color.BLACK); setupPawns(RANK_SEVEN, Color.BLACK); setupPawns(RANK_TWO, Color.WHITE); setupOthersPieces(RANK_ONE, Color.WHITE); } 초기 콘솔 버전은 단순 Map 자료구조에 좌표값과 좌표에 해당하는 기물만 저장하는 방식이었습니다. 따라서 static 블럭에서 모든 것이 해결 가능했죠. ..
정확히 알지 못하며 사용하고 있는 도메인이라는 표현에 대해 나름대로의 정의를 이해하고, 정리해보고 싶었습니다! domain의 어원과 사전적 정의 정확히 domain 이라는 단어는 16세기 말 최초에 기록되었으나 비슷한 의미의 다른 형태로 아주 오래전부터 사용되었습니다 군주의 소유물, 영토의 의미로 비슷한 형태의 단어가 아주 오래전부터 사용되어 왔습니다. 16세기 말 최초로 domain이라는 단어의 기록이 발견되었구요. 메리엄 웹스터 사전의 주요 해석을 보자면, 현대의 domain은 지방 정부의 관할, 학문 영역, 활동 영역, 인터넷 주소 하위 구분 등의 의미로 사용되고 있습니다. 군주의 소유물, 영토를 의미하던 단어가, 현대에 들어서는 보다 넓은 문맥에서 영역을 구분하는 의미로 사용됨을 알 수 있었네요!..
우아한테크코스 레벨1 백엔드 필독서, 객체지향의 사실과 오해를 읽고 이해한 내용을 저의 언어로 표현해보는 포스팅입니다. 객체지향 프로그래밍 현실 세계 은유로 구조화된 도메인 모델을 자율적 객체들의 협력으로 재창조해내는 것 프로그램을 명령어의 집합이 아니라, 협력하는 객체들의 모임으로 보는 프로그래밍 기법입니다. 사람의 인지 능력에는 한계가 있습니다. 프로그램이 거대해지고 요구사항이 많아질 수록, 내부복잡도는 높아질 수밖에 없고, 이를 개발자가 모두 명령어로 제어하려면 한계가 발생합니다. 이 지점에서 객체들의 책임, 역할, 협력 이라는 개념이 부상합니다. 책임 한 객체가 어떤 메시지를 받을 수 있다면, 그 객체는 그 메시지를 수행할 책임이 있다. A라는 객체에게 doSomething라는 메시지를 보낼 수 ..