우아한테크코스에서는 각 레벨을 마칠 때마다 학습한 내용을 레벨 로그로 정리하고, 이를 토대로 인터뷰를 진행합니다. 나의 변화와 성장을 내가 확인하고, 어디까지 아는지, 어느 부분을 잘 모르는지 메타인지를 기를 수 있는 시간입니다. 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라는 메시지를 보낼 수 ..
우아한테크코스 웹 백엔드 4기 레벨 1 필독 도서 중 하나인 코딩을 지탱하는 기술을 읽었습니다. 감상 전반적인 감상 다른 필독서와 달리 이 책은 발췌독이 아닌 전체를 읽은 뒤 내용을 정리할 것을 권장하고 있어요. 양이 많지 않고, 비교적 가볍게 읽을 수 있는 내용들이었어요. 책 자체에서 챕터마다 적절한 분할과 요약을 해주셔서 읽고 정리하는 데 아주 수월했습니다. 프로그래밍 언어가 어떻게 발전해와서 현재의 모습을 갖추게 되었는지 이해하는 데 도움이 되었습니다. 또한 제 주력 언어인 Java가 아닌 다른 언어들은 왜 다른 형태를 갖추게 되었는지 등도 조금 더 알 수 있었어요. 이 책의 제목 대로 코딩을 지탱하는 기술을 전달해주는 책이었습니다. 프로그래밍 언어의 역사, 언어 간의 발전 과정에서 목표한 것의 차..