
왜 추상화 계층을 만드는가 HttpConnection connection = HttpConnection.connect("http://example.com/server"); conncetion.send("Hello Server"); connection.close(); 예를 들어 사용자의 어떤 장치에서 실행되면서 서버에 메시지를 보내는 코드를 작성한다고 가정해보자. 이때, 최상위 계층에서는 HTTP 프로토콜이 어떻게 구현되는지 알 필요도 없이 서버에 메시지를 보내는 것에만 신경을 쓰면서 코드를 작성할 수 있다. 이와 비슷하게 HTTP 프로토콜을 구현하기 위한 코드를 작성한 엔지니어는 데이터가 무선 신호에 변조되는 방법에 대해 아무것도 몰라도 문제가 없을 것이다. HttpConnection 코드를 구현한 개발..

이번에는 코틀린의 다양한 클래스에 대해 알아보자! 1. Data Class 2. Enum Class 3. Sealed Class, Sealed Interface Data Class DTO(Data Transfer Object)를 통해 알아보겠다. Java package classes; import java.util.Objects; public class PersonJa { private final String name; private final int age; public PersonJa(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() {..
긴 매개변수 목록 함수에 매개변수가 많을수록 함수의 역할을 이해하기 어려워진다. 과연 그 함수는 한가지 일을 하고 있는게 맞는가? 불필요한 매개변수는 없는가? 하나의 레코드로 뭉칠 수 있는 매개변수 목록은 없는가? 어떤 매개변수를 다른 매개변수를 통해 알아낼 수 있다면, 매개변수를 질의 함수로 바꾸기 (Replace Parameter with Query) 를 사용할 수 있다. 기존 자료구조에서 세부적인 데이터를 가져와서 여러 매개변수로 넘기는 대신, 객체 통째로 넘기기 (Preserve Whole Object) 를 사용할 수 있다. 일부 매개변수들이 대부분 같이 넘겨진다면, 매개변수 객체 만들기 (Introduce Parameter Object) 를 적용할 수 있다. 매개변수가 플래그로 사용된다면, 플래..

클래스 클래스 체계 클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나오고 변수 목록 다음에는 공개 함수가 나온다. class Example { 변수들 ... 함수들 ... } 변수: 정적 공개 상수 -> 정적 비공개 변수 -> 비공개 인스턴스 변수 -> 공개 변수 변수 목록 다음에는 공개 함수가 나온다. 즉, 추상화 단계가 순차적으로 내려간다. 클래스는 작아야 한다! 클래스를 설계할 때도, 함수와 마찬가지로 ‘작게’가 기본 규칙이다. 함수는 물리적인 행 수로 크기를 측정했다면, 클래스는 맡은 책임을 센다. 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 너무 커서 그렇다. 단일 책임 원칙(Single Responsibility Pr..
- Total
- Today
- Yesterday
- spring boot
- Spring
- mysql 8.0
- 노마드
- 김영한
- 리팩토링
- 북클럽
- 릿코드
- MySQL
- 코틀린
- kotlin
- 구현
- Real MySQL
- 코테
- 자료구조
- 데이터베이스
- 인프런
- leetcode
- 그리디
- 알고리즘
- webflux
- Algorithm
- 스프링 부트
- 스프링부트
- 스프링
- 정렬
- 파이썬
- 문자열
- 노마드코더
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |