분류 전체보기
-
-
Enum을 비교할 때에는 ==과 equals()중 어떤 것을 써야 할까?One Cookie a day 2024. 2. 6. 10:23
회사에서 MergeRequest를 올리고 코드 리뷰를 팀원께 요청드렸었는데, 아래와 같이 Dto에 있던 enumType비교 시 ==기호를 사용한 것에 대해 코드 리뷰가 달렸었다. if (someDto.type == someEnumType.Atype) { // do something } Enum 비교에 있어서 equals( )와 ==의 차이에 대해 공부해보는것도 좋을 것 같다고 공부할만한 토픽을 하나 주셔서, 겸사겸사 공부한 것을 정리하려 포스팅한다. equals( )와 == 연산의 차이는 CS 스터디때도, 멘토링 공부하면서도 알고 있던 부분이라고 생각했고, 다시 내가 공부했던 내용을 찾아보면 아래와 같다. equals()는 참조 변수의 값이 같은지 비교하는 메소드로, 재정의 되어있지 않다면 객체의 주소값..
-
Factory PatternJava/디자인패턴 2024. 1. 17. 11:10
🤔 인터페이스를 사용한다고 해도 구상 클래스의 인스턴스를 만들어야 하지 않나? Duck duck = new MallardDuck(); // Duck이라는 인터페이스를 써서 유연하게 만들려고 해도, 그럼에도 구상 클래스의 인스턴스를 만들어야 한다. Duck duck; if (picnic) { duck = new MallardDuck(); } else if (hunting) { duck = new DecoyDuck(); } else if (inBathTub) { duck = new RubberDuck(); } 이 코드를 보면 구상 클래스의 인스턴스가 여러 개 있고, 그 인스턴스의 형식은 실행 시 조건에 따라 결정된다. 변경하거나 확장할 때, 코드를 다시 확인하고 새롭게 추가하거나 기존 코드 제거 => 관리와..
-
-
Decorator PatternJava/디자인패턴 2024. 1. 11. 17:39
🍦 Decorator Pattern 객체에 추가 요소를 동적으로 더할 수 있는 디자인 패턴 서브 클래스 만들 때보다 훨씬 유연하게 기능을 확장할 수 있음 데코레이터의 슈퍼 클래스는 자신이 장식하고 있는 객체의 슈퍼 클래스와 동일 ~ 원래 객체에 들어갈 자리에 데코레이터 넣어도 상관 X 힌 객체를 여러 개의 데코레이터로 감쌀 수 있음 객체는 언제든지 감쌀 수 있음, 실행중에 필요한 데코레이터를 마음대로 적용 가능 - 객체 구성(인스턴스 변수로 다른 객체 저장하는 방식) 사용 ~ 첨가물을 다양하게 추가해도 유연성을 잃지 않도록 예시 ) 커피 주문 public abstract class Beverage { String description = "제목 없음"; public String getDescription..
-
Observer PatternJava/디자인패턴 2024. 1. 4. 18:07
🍄 Observer Pattern이란 무엇인가? 한 객체의 상태가 바뀌면, 그 객체에 의존하는 모든 객체들에 연락이 가고 자동으로 내용이 갱신되는 방식 주제에서 중요한 데이터 관리 → 주제 데이터 바뀌면 옵저버에게 바뀐 값 / 바뀌었다는 소식이 전해진다. 옵저버 객체들은 주제를 구독하고 있으며(주제 객체에 등록되어 있음), 주제 데이터가 바뀌면 갱신 내용을 전달받는다. Subject : Observer = 1 : N 관계 public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o); public void notifyObservers(); // 모든 옵저버들에게 변경내용을 알..
-
[ 이모저모 ] ERD 설계(1) - 회원 도메인Projects 2023. 12. 13. 02:31
최근 새롭게 프로젝트를 시작했다. 지그재그 서비스를 클론코딩한 프로젝트이고, 개인 프로젝트로 백엔드 API 쪽을 구현해보기로 했다. 이번 포스팅에서는 ERD 설계 관련해서 고민하고, 피드백을 받아 수정한 것들에 대해 정리하려 한다. 먼저 구현할 기능들을 User Story 형태로 정리해보면 다음과 같다. 회원은 카카오, 네이버 로그인을 통해 서비스에 회원 가입 및 로그인할 수 있다. 회원은 언제든 서비스 탈퇴가 가능하다. 회원은 4가지의 등급별로 매달 등급 쿠폰을 발급받을 수 있다. 회원은 만료된 쿠폰, 소지하고 있는 쿠폰, 발급 가능한 쿠폰 목록을 확인할 수 있다. 회원은 구매 확정한 주문에 포함한 상품들에 대해 확정 후 30일 이내로 리뷰를 작성할 수 있다. 회원은 작성한 리뷰를 수정할 수 있다. 회..
-
프로그래머스 - 단속카메라, 백준 13549, 5427Java/코딩테스트 2023. 11. 10. 02:28
🚨 프로그래머스 : 단속카메라 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚨그리디 알고리즘 문제 🚨진입 / 진출 지점에서 만난 것도 만난 것으로 인정하므로 구간 끝에 카메라를 설치한다고 생각하면 된다. 🚨여기서 진입 지점으로 정렬할지 진출 지점으로 정렬할지 헷갈렸는데 진출 시점으로 정렬해야 한다. 첫 구간이 아주 길다면 내부 구간이 다 무시되기 때문이다. 🚨그림 설명 🚨전체코드 참고로 pivot은 이 구간의 최솟값이 -30000이라 -30..