본문 바로가기

분류 전체보기36

1장 오브젝트와 의존관계 (2) 다음의 내용은 아래의 내용을 읽은 후 책에서 언급되는 구문을 기반으로 생각 정리한 글 입니다. 1.3 DAO의 확장 1.3.1 클래스의 분리 1.3.2 인터페이스의 도입 1.3.3 관계설정 책임의 분리 1.3.4 원칙과 패턴 (개방 폐쇄 원칙 | 높은 응집도와 낮은 결합도 | 전략 패턴) 1. 객체는 유연하게 변할 수 있으며 관심사에 따라 성격(본질)이 달라진다. 여기서 말하는 성격은 변화의 이유, 시기, 주기(기간)등이 모두 포함된다. 2. 개방 폐쇄 원칙 (Open-Closed Principle) 은 단어의 뜻 그대로 보면 확장엔 열려 있어야하고 변경에는 닫혀 있어야 한다 이며, 조금 풀어쓰자면 나의 객체 A에 대해 코드를 변경하지 않아도 상대방은 객체 A를 본질 그대로 사용하면서 기능을 추가하거나 .. 2023. 11. 15.
1장 오브젝트와 의존관계 (1) 다음의 내용은 아래의 내용을 읽은 후 책에서 언급되는 구문을 기반으로 생각 정리한 글 입니다. 1.1 초난감 DAO 1.1.1 User 1.1.2 UserDao 1.1.3 main()을 이용한 DAO 테스트 코드 1.2 DAO의 분리 1.2.1 관심사의 분리 1.2.2 커넥션 만들기의 추출 UserDao의 관심사항 중복 코드의 메소드 추출 변경사항에 대한 검증: 리팩토링과 테스트 1.2.3 DB 커넥션 만들기의 독립, 상속을 통한 확장 0. 들어가기 앞서... 1장을 들어가기전에 들어가며를 읽었다. 읽고 난 소감과 근래 개발하면서 느낀점은 스프링부트는 스프링에서 요구하는 설정들에 대해 디폴트를 지원하고 빠르게 접근하기 위해 설정 과정을 간편화 시킨 것이고 스프링은 순수 자바를 잘 활용 할 수 있도록 추상.. 2023. 11. 12.
Kernel360 :: 커리큘럼 신청 ~ 온보드 후기, 회고, 추천유무 커리큘럼 진행 한 달을 목전에 두고 이번 기회에 한번 정리를 하고자 하는 글을 쓰기로 마음먹었다. 호오오오오옥시나 차후 이 커리큘럼에 관심이 있어 다음 기수에 지원을 하려고 하는 사람이 있다면, 글을 읽고 도움이 되기를 바라며 주저리주저리 한번 또 글을 써본다. 0. 왜 지원 했니? 앞서 나는 si에서 6년이라는 적지 않은 기간을 두고 업무를 한 경험이 있다. 비슷한 부류의 다른 회사로 이직을 한다거나 프리랜서로 계속 일을 한다면 아마 괜찮게 대우를 받았겠지만, 훈훈하고 따뜻한 원청의 갑질(?)과 같은 개발환경에서 했던 거만 또 하는 재미없는 분위기에 흥미를 잃었고 제일 중요한 건강이 나빠져 시원하게 퇴사를 지르고 아무것도 안 하고 쉬기로 했다. 퇴사하고 나서 쉬는 동안엔 참 좋았다. 스트레스받지도 않으.. 2023. 11. 5.
간단하게 알아보는 쿼리 실행계획의 중요성 이번 시간에는 같은 결과를 가져오더라도 쿼리 짜는 퀄리티에 따라 비용(cost)이 바뀌는 것에 대해 이야기 하고자 한다. 아주 기초적인 예시와 내용으로 작성 하였으므로 이해에 어려움이 발생하진 않을 것이라 본다. 위와 같은 사용자 정보를 담는 user_info 테이블이 있다고 가정을 하자. 이 테이블에는 더미데이터 회원정보가 1천건이 저장되어 있다. 내가 여기서 통계를 내기 위해 전체 회원수, 월 가입자 수, 6개월 이상 미접속자의 수3개를 조회하고자 한다. 쿼리 초보자의 입장에선 SELECT를 통해 세가지 값을 가져와야 한다는 것을 인지는 할텐데 문법상 select "column_name" from "table" 인 것을 생각하여 다음과 같이 조회를 했다고 가정해보자. 1 2 3 4 5 6 -- 전체 .. 2023. 11. 3.
junit 테스트코드 작성 환경에서 연결 db 변경 방법 오늘 tdd 방식으로 개발 진행중, 문득 assert로 테스트는 통과했으나 jpa와 실제 db간 연동후 데이터 반/출입 확인 후 눈으로 보고싶어 이것에 대해 세팅을 하고자 했다. 스프링부트 기준으로 디폴트 세팅은 h2를 바라보게 되어있다. (굳이 db를 타는 로직을 체크하는 경우) 결과적으로 바꾼 정보로 db connection은 성공했으나, insert나 select시 쿼리가 정상적으로 통과하지를 못했다. 이것을 해결하고 싶어 했으나 맨토링을 듣고보니 문제를 해결하고자 함으로써 tdd 테스트의 본질을 망각해버려 유의미한 데이터 반/출입을 수행하진 못했다. 테스트 코드 작성은 외부 환경에 영향을 받지 않고 독립된 환경에서 로직만 테스트를 수행하여야 한다. (db입출력 테스트는 통합테스트때 해도 충분하다는.. 2023. 11. 1.
hackerton :: shorturl "해줘" https://github.com/Kernel360/hackerthon1-doitfor GitHub - Kernel360/hackerthon1-doitfor: shortURL을 만들어주는 서비스입니다. shortURL을 만들어주는 서비스입니다. Contribute to Kernel360/hackerthon1-doitfor development by creating an account on GitHub. github.com 개요 최소한의 기술적 완성도를 가진 결과물을 단시간에 만들어 자신의 기술력을 파악, 빠른 학습의 대한 경험을 습득 프로젝트를 진행하며 코드의 품질과 기술적 협업 등을 이해하자. 프로젝트 목적, 목표 사용자가 원하는 url을 줄여 짧게 만든 url을 제공해준다 ! 플랫폼 목표 - 1일 1.. 2023. 10. 30.