본문 바로가기

전체 글128

[도메인 주도 개발 시작하기] 01. 도메인 모델 시작하기 [도메인 주도 개발 시작하기] 01. 도메인 모델 시작하기 1. 도메인 1.1 도메인이란? - 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. 이때, '온라인 서점'은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인에 해당된다. 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 하나의 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. ex) 고객이 물건을 구매하면 주문, 결제, 배송, 혜택 하위 도메인의 기능이 엮이게 된다. 모든 도메인을 직접 구현해야 하는 것은 아니고 외부 업체의 시스템을 이용하기도 함. ex) PG사, 배송 업체 2. 도메인 모델 2.1 도메인 모델이란? - 다양한 정의가 존재하지만, .. 2022. 6. 19.
[헤드퍼스트 디자인패턴] 04. 싱글턴 패턴(Singleton Pattern) [헤드퍼스트 디자인패턴] 04. 싱글턴 패턴(Singleton Pattern) 1. 싱글턴 패턴이란? 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. 2. 고전적인 싱글턴 패턴 구현법 public class Singleton { private static Singleton uniqueInstance; // 기타 인스턴스 변수 private Singleton() {} public static Singleton getInstance() { if(uniqueInstance == null) { uniqueInstance = new Singleton(); } return uniqueInstance; } // 기타 메소드 } 생성자는 private 이므로 외부에서 new 키워드를 통해 객체.. 2022. 6. 18.
[헤드퍼스트 디자인패턴] 03. 데코레이터 패턴(Decorator Pattern) [헤드퍼스트 디자인패턴] 03. 데코레이터 패턴(Decorator Pattern) 1. 데코레이터 패턴이란? 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. 2. 구현 목표 1. 카페의 주문 시스템을 만든다. 2. 고객은 커피를 주문할 때 우유나 두유, 모카를 추가하고 그 위에 휘핑크림을 얹기도 한다. 3. 고려사항 - 추후 옵션이 늘어날 수 있다. - 각각을 추가할 때마다 커피 가격이 올라가는 점을 고려해야 한다. 4. 구현 4.1 문제가 있는 설계 (상속을 사용 할 경우) 문제점 첨가물이 가격이 바뀔 때 마다 기존 코드를 수정해야 한다. 첨가물 종류가 많아지면 새로운 메소드를 추가해야 하고, cost() 메소드를 수정해.. 2022. 6. 18.
[헤드퍼스트 디자인패턴] 02. 옵저버 패턴(Observer Pattern) [헤드퍼스트 디자인패턴] 02. 옵저버 패턴(Observer Pattern) 1. 옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 2. 구현 목표 1. WeatherData 클래스에는 3가지 측정값(온도, 습도, 기압)의 게터 메소드가 있다. 2. 새로운 기상 측정 데이터가 들어올 때마다 measurementsChanged() 메소드가 호출된다. 3. 기상 데이터를 사용하는 3가지(현재 조건, 기상 통계, 기상 예보) 디스플레이를 구현한다. 4. 디스플레이를 업데이트하도록 measurementsChanged() 메소드에 코드를 추가해야 한다. 3. 고려사항 - 확장성 : 추후 디스.. 2022. 6. 12.
[헤드퍼스트 디자인패턴] 01. 전략패턴 [헤드퍼스트 디자인패턴] 01. 전략패턴 오리 시뮬레이션 게임, SinuUduck 1. 메타몽은 오리 시뮬레이션 게임을 만드는 회사를 다니고 있습니다. 이 게임에는 매우 다양한 오리가 등장하여, 메타몽은 표준 객체지향 기법을 사용하여 Duck 이라는 슈퍼 클래스를 만든 다음, 그 클래스를 확장해서 서로 다른 종류의 오리를 만들었습니다. 그러나 회사 임원진은, 오리에게 특별한 기능이 있어야 한다며 오리를 날게 해달라고 했고, 메타몽은 Duck 클래스에 fly() 기능을 추가하였습니다. 이럴수가! 고무 오리는 날수 없는데 고무 오리가 날아다니는 오류가 발생했습니다. 그래서 quack() 처럼 fly()도 오버라이드 처리를 해주었습니다. 가짜 오리 클래스도 새로 추가해주었습니다. 2. 메타몽은 방금 임원진이 .. 2022. 6. 5.
[네트워크] 2022.03.27 ~ 2022.05.22 두번째 스터디 회고록 [네트워크] 2022.03.27 ~ 2022.05.22 두번째 스터디 회고록 첫번째 운영체제 스터디를 무사히, 뿌듯하게 마치고 난 후 https://be-developer.tistory.com/60 [운영체제] 2022.01.18 ~ 2022.02.19 첫번째 스터디 회고록 [운영체제] 2022.01.18 ~ 2022.02.19 첫번째 스터디 회고록 처음 스터디를 해야겠다고 마음 먹은건, 아마 시험삼아 넣어본 면접에서 탈탈 털렸기 때문이었던것 같다. CS지식이 너무 부족함을 느끼 be-developer.tistory.com 일주일 쉬고 다음 스터디인 네트워크를 바로 들어가려고 했는데 한분이 이직준비로 회사다니면서 과제다 면접이다 너무 바쁘셔서 한달만 쉬었다가 그때 상황보고 진행상황을 보기로 했는데 다행히.. 2022. 6. 4.
[운영체제] 2022.01.18 ~ 2022.02.19 첫번째 스터디 회고록 [운영체제] 2022.01.18 ~ 2022.02.19 첫번째 스터디 회고록 처음 스터디를 해야겠다고 마음 먹은건, 아마 시험삼아 넣어본 면접에서 탈탈 털렸기 때문이었던것 같다. CS지식이 너무 부족함을 느끼고 CS공부를 시작해야겠다 생각하고 스터디를 만들기 시작해서 개발자가 된 후 처음으로 하게된 나의 첫 스터디 . . . 글을 쓰는 지금(2022.05.26)은 스터디가 두개 끝났고, 이제 다음주에 디자인 패턴, 다다음주에 도커 & 쿠버네티스 스터디가 시작되는데 스터디 끝날때마다 회고를 적으면 좋을 것 같아서 적어보려 한다. 취업하고 나서 개발자 잡담 오픈 카톡방에 들어가서 떠들던 곳이 있는데 거기서 첫 CS 스터디원을 구했다. https://be-developer.tistory.com/23?categ.. 2022. 5. 26.
[네트워크] 6. BGP와 OSPF로 forwarding table 만드는 법, Broadcast and multicast routing [네트워크] 6. BGP와 OSPF로 forwarding table 만드는 법, Broadcast and multicast routing 1. routing in the internet - BGP(inter as routing protocol) : 서로 다른 AS에서 정보를 교환할 때 사용하는 프로토콜 - OSPF(intra as routing protocol) : 같은 AS내에서 정보를 교환할 때 사용하는 프로토콜 1.1 BGP와 OSPF가 협력해서 어떻게 forwarding table을 만들 수 있는지 보자 - gateway router들은 BGP를 교환함으로써 루트정보를 획득하게 된다. 1.1.1 루트정보 1) 목적지 서브넷의 prefix 2) 목적지 서브넷으로 가기 위한 경로 정보(attribut.. 2022. 5. 21.
[빗썸테크아카데미] 백엔드 과정 6주차(팀프로젝트 3주차) 마지막 후기, 회고록 [빗썸테크아카데미] 백엔드 과정 6주차(팀프로젝트 3주차) 마지막 회고 05.16(월) 오늘은 Exception 발생 시, kafka message를 producing 하는 작업을 진행했다. error response 메세지를 처음에 kafka 메세지에도 동일하게 전송을 했더니, 언제 에러가 났는지, 어느 부분에서 에러가 났는지, 정확한 에러 메세지가 뭔지 전혀 알수가 없어서 StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); throwable.printStackTrace(pw); 위의 방법으로 printStackTrace를 직접 까서 원하는 데이터를 파싱해서 kafka로 전달하는 작업을 진행하였다! 05.17(화) 어제.. 2022. 5. 20.
728x90
반응형