전체 글 249

[Book] 읽기 좋은 코드가 좋은 코드다

소스 리팩토링을 진행하면서 좋은 소스코드를 만든다는 것은 무엇일까에 대한 의문이 생겼다. 나 같은 주니어 개발자에게 좋은 가이드를 해주는 책인 것 같다. 매번 고민하던 네이밍이나 주석에 관하여 명확하게 기준을 얻을 수 있었다. 다음 주 면접이 끝나면 빠르게 다 읽고 리뷰를 마저 작성해야겠다.! 코드는 이해하기 쉬워야 한다. 코드를 더 좋게 만드는 것은 무조건적인 간결함이 아니다. 가독성의 기본 원리 코드는 다른 사람이 이해하는데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 일회용으로 작성한 대충 쓴 코드가 어느 다른 프로젝트에 쓰일 수 있다. 분량이 적으면 항상 더 좋은가? 라인 수가 적은 것은 좋은 목표지만.. 이해를 위한 시간을 최소화하는 게 더 좋은 목표다! 이해를 위한 시간은 다른 목표와 ..

CS/Book 2020.11.29

[알고리즘] 하노이의 탑

하노이의 탑 (Towers of Hanoi) 재귀를 활용한 대표적인 알고리즘 문제로 하노이의 탑 문제가 있다. 하노이의 탑은 원하는 위치로 원판을 옮기는 문제다 하노이의 탑 : 작은 원반이 위에, 큰 원반이 아래에 위치할 수 있도록 원반을 3개의 기둥 사이에서 옮기는 문제이다. 모든 원반은 크기가 다르고 처음에는 모든 원반이 규칙에 맞게 첫번째 기둥에 쌓여있다. 이 상태에서 모든 원반을 세 번째 기둥으로 최소의 횟수로 옮기면 된다. 원반은 1개씩 옮길 수 있고 큰 원반을 작은 원반 위에 쌓을 수 없다. [원판을 옮길 때 제약사항] 맨 위에 있는 원판만 이동 가능 한 번에 하나씩만 이동 크기가 큰 원판 위에만 작은 원판 이동 가능 중간 막대를 이용할 수 있지만 다른 조건이 모두 만족해야 함 #include..

CS/Algorithm 2020.11.01

디자인 패턴의 종류

디자인 패턴 유사한 문제를 해결하기 위해 설계들을 분류하고 각 문제 유형별로 가장 적합한 설계를 일반화하여 체계적으로 정리해놓은 것이다. 소프트웨어 개발에서 효율성과 재사용성을 높일 수 있다. GoF 디자인 패턴의 종류 1. 생성(Creational) 패턴 : 객체 생성 관련 추상 팩토리(Abstract Factory) : 제품군별 객체 생성 빌더(Builder) : 부분 생성을 통한 전체 객체 생성 팩토리 메서드(Factory Methods) : 대행 함수를 통한 객체 생성, 인스턴스 생성 결정은 서브클래스 프로토타입(Prototype) : 복제를 통한 객체 생성 싱글톤(Singleton) : 클래스 인스턴스가 하나만 만들어지고 그 인스턴스에 전역접근하여 사용하는 패턴 2. 구조(Structural) ..

CS 2020.08.10

[Spring] @Valid, @Validated 활용

@Valid 어노테이션을 활용한 유효성 검사 로직을 리팩토링 하면서 공부해보았다. 기존 소스도 파라미터 체크 로직을 이걸로 수정해서 반영해놓았다. 뿌듯하다 ㅎㅎ. 파볼수록 흥미로운 게 많아 정리한다. documents 읽기를 생활화하자! 1. Validator란? 스프링에서 도메인 객체를 검증할 수 있도록 제공하는 인터페이스. - Controller로 HTTP 요청을 @ModelAttribute 모델에 바인딩할 때 주로 사용된다. - Validator 인터페이스는 supports()와 validate() 메서드로 구성되어 있다. supports()는 이 검증기가 검증할 수 있는 오브젝트 타입인지 확인해주는 메서드, 이 메서드를 통과한 경우에만 validate()가 호출된다. validate()는 매개변수..

Dev/Spring 2020.07.15
반응형