본문 바로가기
반응형

분류 전체보기138

IP주소 뒤 슬래시 숫자는 뭘까? 간혹 IP 중 아래처럼 슬래시가 붙은 IP가 있다. 10.21.5.0/24 /24 는 뭘까? CIDR (사이더) 우리가 IP 주소 하나를 말하면 10.1.2.0 식으로 하나만 말하면 된다. 하지만 아래처럼 비슷한 IP 가 여러개라면? 10.1.2.0 10.1.2.1 10.1.2.2 10.1.2.3 ... 이걸 일일히 다 적는건 눈에 잘 들어오지도 않고 비효율적이다. IP 주소 뒤에 /24 , /16 같은 숫자를 CIDR 라고 한다. CIDR 는 다수의 IP 주소의 범위를 표현하기 위한 표기법이다. IP 주소는 점으로 나뉜 4 영역으로 되어있는데, 각각의 자리는 0~255 자리수로 256글자로 되어있다. (각각의 영역은 8bit 로 되어있음) 10001111 . 00000111 . 01000001 . 11.. 2023. 11. 7.
Five Lines of Code - 6장. 데이터 보호 getter 없이 캡슐화하기 규칙 ) getter / setter 를 사용하지 말 것 getter 를 사용하면 캡슐화를 해제하고 불변속성을 전역적으로 만들게 된다. 따라서 예상치 못한 방식으로 객체를 수정할 수 있다. 또한 디미터 법칙 (.을 2번이상 사용하지 말아야 하는 법칙) 을 위배할 수 있고 코드를 절차지향적으로 설계할 가능성이 높아지므로 getter, setter 는 가급적 사용하지 말아야 한다. 간단한 데이터 캡슐화하기 규칙 ) 공통 접사를 사용하지 말 것 예를들어 유저의 나이 증가, 유저의 나이 조회, 유저의 이름 조회 기능을 만들어야 할 때 다음과 같이 만들 수 있다. class Main { public void increaseUserAge() { } public int getUserAge.. 2023. 10. 14.
Five Lines of Code - 5장. 유사한 코드 융합하기 클래스 간의 코드 통합 전략패턴 도입 기존 코드에서는 인터페이스 안에 모든 코드를 통합하다보니 유지보수가 어려운 문제가 있었다. 그래서 전략패턴을 도입해서 각각의 성격에 맞게 전략을 분리할 수 있다. 전략패턴 vs 상태패턴 전략패턴과 상태패턴은 뭔가 비슷한데 아래와 같은 차이가 있다. 전략패턴 인스턴스 생성 후, 상태가 거의 바뀌지 않는 경우 전략을 클래스로 표현 상태패턴 인스턴스 생성 후, 상태가 빈번하게 바뀌는 경우 상태를 클래스로 표현 UML UML 은 코드에 대한 속성을 전달하기 위해 다양한 유형의 표준 다이어그램으로 구성됨 시퀀스 다이어그램 : 객체 간의 요청과 응답 흐름 클래스 다이어그램 : 클래스 설계 및 연관관계 활동 다이어그램 : 기획 흐름을 보여줌 구현체가 하나인 인터페이스를 만들지 말.. 2023. 10. 4.
Five Lines of Code - 4장. 타입 코드 처리하기 Five Lines of Code - 4장. 타입 코드 처리하기 if else 를 사용하지 말자 public play(User user) { if (user.getStatus == Status.RUN) { user.setStamina(user.getStamina - 1); } else if (user.getStatus == Status.WAIT) { user.setStamina(user.getStamina + 1); } } 위 코드에서 user status ‘ATTACK’ 이 추가되었다. public play(User user) { if (user.getStatus == Status.RUN) { user.setStamina(user.getStamina - 1); } else if (user.getStat.. 2023. 9. 22.
Lazy 로 쿼리를 날리고 싶다면? 문제 aService 로직을 실행하고, 실행 환경이 release 환경이라면 bService 로직을 추가로 실행하는 코드가 있다. public void run(Model model) { model.addAttribute("play1", aService.play()); boolean isRelease = DeployUtils.isRelease(); if (isRelease) { model.addAttribute("play2", bService.play()); } } 문제는 이 코드가 대략 10 군데 정도의 Controller 에서 사용되고 있어 중복처럼 보였다. 중복을 제거하기 위해 BaseController 를 만들고, 해당 코드를 설계했다. BaseController public void add(Mod.. 2023. 9. 12.
vuetify 에서 v-switch 텍스트 색상 변경하는 법 문제 아래처럼 스위치를 통해 접속 상태를 나타내는 요구사항이 있었다. ‘접속 허용중’ 일때는 초록색 텍스트, ‘접속 차단중’ 일때는 빨간색 텍스트로 보여주어야 했다. 스위치는 vuetify 프레임워크에서 제공하는 v-switch 로 간단하게 처리할 수 있었는데 https://v2.vuetifyjs.com/en/components/switches/ 공식문서에는 label color 를 변경하는 방법이 따로 나와있지는 않아서 삽질을 했다.. 해결 stack overflow 에서 힌트를 얻을 수 있었는데, v-slot:label 을 이용해서 처리할 수 있었다. 접속 차단중 접속 허용중 ... private isNotConnectionAllUser = false; 위처럼 isNotConnectionAllUser.. 2023. 9. 12.