목록전체 글 (287)
개발자는 기록이 답이다
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/by9AuW/btsDGrT4HWm/5rnJdiCFTA3y96XKmLKQU0/img.png)
HashMap은 Map인터페이스 기반의 Hashtable 구현체라고 알려져 있다.구글링해서 많은 자료들을 찾아봤지만,CS에서 사용하는 HashTable이라는 개념과 Java코드로 구현한 Hashtable, HashMap을 같이 엮어서 생각해보려니까bucket, entry, node 등 용어들이 헷갈린다. 그래서 직접 디버깅하면서 원리를 파악해보고자 한다.(본 포스팅을 보기 전에 우선 동일성과 동등성 개념에 대한 이해가 있어야 한다) 1. HashSet은 중복을 허용하지 않는다 HashSet의 특징이라고 하면 순서가 중요하지 않고 중복을 허용하지 않는 자료구조라고 많이 알고 있다.그런데 이 "중복"의 기준이 뭘까? Person클래스를 만들어서 HashSet에 데이터를 저장할때 add()메소드를 사용할 것이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhTane/btsDHpOPYJD/2VPH1EUgHv0mSP2mk6tFk0/img.png)
8장에서는 유연하고 재사용 가능한 설계를 만들기 위해 적용할 수 있는 다양한 의존성 관리기법을 학습했다. 이번 장에서는 해당 기법들을 원칙이라는 관점에서 정리하고자 한다. 앞 장의 내용이 반복된다는 느낌을 받을 수 있겠지만, 이름을 가진 설계 원칙을 통해 기법들을 정리하는 것은 장황하게 설명된 개념과 매커니즘을 또렷하게 정리할 수 있게 도와줄 뿐만 아니라 설계를 논의할때 사용할 수 있는 공통의 어휘를 익힌다는 점에서도 가치가 있다. 1. 개방-폐쇄 원칙 로버트 마틴은 확장 가능하고 변화에 유연하게 대응할 수 있는 설계를 만들 수 있는 원칙 중 하나로 개방-폐쇄 원칙(Open-Closed Principle, OCP)을 고안했다. 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려있어야하고, 수..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mJ6PH/btsDDXEIyyh/S4cIALieYsOKJChluSqjv1/img.png)
1. F-Lab 2주차 멘토링 시작 전 1주차 멘토링이 끝나고, 일주일동안 평균적으로 순 공부시간 6시간정도를 공부했던 것 같다. 저번주와 마찬가지로 자바의 신 11장부터 25장까지 그대로 모든 글자를 따라치고 있는데, 시간이 꽤 오래걸려서 집중이 떨어지는 것 같다. 이걸 얼른 다 따라쳐야지 라는 생각에 좀 버거운 느낌이 들기도 하고 하다보니 이론적인 개념이 머리속에서 잊혀진다. 그래도 모든 타입들 내부 구조 들어가서 확인해보기도 했는데, 외워지지가 않는다. 9시부터 컴퓨터 책상에 앉아서 거의 새벽 2시까지 뭔가를 하고 있는 것 같은데, 왜 순 공부시간은 6시간밖에 안되는지 속상하다. 그만큼 집중이 떨어진다는걸텐데, 무엇이 문제인 것인가! 멘토링 시작 전에 궁금한 점 2가지가 생겨서 준비했다. Stack..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/brdQgb/btsDDV06oJ3/Ko5HZj9bgE8m28aPNFaPHk/img.png)
노션으로 멘토링 후기랑 TIL을 적고 있는데, 멘토링 후기는 블로그에 남겨도 좋을 것 같아서 1주차꺼부터 남겨보려고 한다. 1. F-Lab 멘토링을 시작 전 고민 2023년 퇴사 후 알고리즘 스터디도 4개월 정도 진행했었고, 자바를 어느정도 쓸 줄 안다고 생각했었다. 하지만 정말 내가 자바의 기초를 100% 이해하는가 고민을 해봤을때, 전혀 아니었다. 면접 전에 그동안 모아두었던 내용을 달달 외우면서 뻔한 대답을 하는 내 모습을 보면서 아쉬움을 느꼈었다. 한샘 2차면접에서도 CTO님께서 자바의 기초적인 부분을 다시 공부해야 한다고 말씀해주셨다. 알고 있다고 생각했던 내용도 정말 Deep하게 다시 파봐야 하고, 다른 언어말고 Java만 일단 다시 공부하라고 해주셨다. HTTP통신도 간단하게만 알고 있으면 ..