개발/Java8 [Java] 상수 값에 행위를 정의하고 싶다면 - Constant Specific Method Implementation 코드를 뚝딱뚝딱 만지다 보면 우리는 종종 특정 분류에 있는 값을 정의하여 사용해야 할 경우가 생기고 우리는 이것을 상수로 정의하여 사용하곤 합니다 가위바위보 게임을 예로 들자면 가위, 바위, 보 이 세 가지는 가위바위보라는 범위 내의 각각의 상수값으로 정의할 수 있습니다 public enum RPS { ROCK, PAPER, SCISSORS; } 모두가 아시다시피 가위바위보 게임은 가위,바위.보를 정의하는 것으로 끝나지 않습니다 가장 중요한 가위, 바위, 보 각각의 상관관계 가위는 보를 이긴다 보는 주먹을 이긴다 주먹은 가위를 이긴다 위 규칙에 대한 정의 혹은 행위가 필요합니다 위 규칙을 구현하기 위해 우리는 가위바위보의 규칙을 정의하는 Util Class를 정의할 수 있습니다. public class .. 2023. 7. 22. [Java] 인수값 유효성 검증 - 표현 계층 vs 응용 계층 서비스를 운영하는 환경에서는 Language와 Framework를 막론하고 Inbound 된 데이터에 대한 유효성 검증이 반드시 필요하다 유효성 검증에는 인자 값에 대한 검증, 인수 값에 대한 검증, 비즈니스 로직에 대한 검증과 같은 다양한 종류의 유효성 검증이 있다 인자 값에 대한 검증은 왠만한 프레임워크의 표현 계층에서 알아서 수행해주고 비즈니스 로직에 대한 검증은 응용 계층에서 수행하는 것이 지극히 일반적이다 하지만 특히 그 중에서도 인수 값에 대한 검증을 표현 계층에서 하느냐, 응용 계층에서 하느냐에 대한 의견이 다양해서 이번 글에서는 각 계층에서 인수 값에 대한 검증을 가져갔을 때의 특징 및 장단점에 대해 비교해 보고자 한다 '이름'이라는 데이터를 생성할 때, 이름의 글자 수에 대한 유효성 검증.. 2022. 10. 23. 원시 값 포장 [Java] 우아한 테크 캠프 Pro 프리코스 진행 중에, 원시 값 포장이라는 개념을 접하게 되었다 원시 값 포장을 쉽게 설명하자면 int, long과 같은 Primitave 타입 변수를 특정 객체로 감싸는 행위를 말한다 코드로 살펴보자면 public class Wallet { private long money; } 위 지갑 클래스의 돈 이라는 long 형 변수를 포장하는 것이다. 바로 이렇게 public class Wallet { private Money money; } public class Money { private long money; } 질문이 있어요. Wallet 클래스에 money 라는 원시 타입 변수를 직접 선언해서 사용하는 것이나 Money 클래스에 money 라는 원시 타입 변수를 선언해서 사용.. 2022. 4. 27. 일급 컬렉션 사용하기 [Java] 우아한 테크캠프 Pro 프리코스를 진행하며 일급 컬렉션에 대한 내용을 접하게 되었다. 일급 컬렉션은 특정 Collection을 포장하며, 그 외 다른 멤버 변수가 없는 상태를 말한다. 가장 쉽게 예를 들면 public class Names { private List names; } 혹은 public class Cars { private Set cars; } 와 같은 형태로 이해하면 된다. 그런데 여기서 자연스러운 의문이 생긴다. 비즈니스 로직에서 public class XXXSerivce { public void method() { List names = new ArrayList(); names.add("xxx"); } } 위와 같이 컬렉션을 선언해서 사용하면 될 것을, 굳이 한 번 더 공을 들여서 포장.. 2022. 4. 22. 이전 1 2 다음 반응형