본문 바로가기

카테고리 없음

2020-03-21 22시 개발자 글 모음 | "클린 아키텍처:소프트웨어 구조와 설계" 외 10개 이야기

[Spring] Lombok을 이용해 Builder 패턴을 만들어보자. by 김진학 about Java,Spring

  • 굳이 빌더 패턴을 쓸 필요가 없을 것 같다 싶었던 이유가 생성자 인자에 필드 명도 함께 표기할 수 있다
  • PRIVATE) @Builder(builderMethodName = "travelCheckListBuilder") @ToString public class TravelCheckList { private Long id; private String passport; private String flightTicket; private String creditCard; private String internationalDriverLicense; private String travelerInsurance; public static TravelCheckListBuilder builder(Long id) { if(id == null) { throw new IllegalArgumentException("필수 파라미터 누락"); } return travelCheckListBuilder()
  • public class MainClass { public static void main(String[] args) { // 빌더패턴을 통해 어떤 필드에 어떤 값을 넣어주는지 명확히 눈으로 확인할 수 있다


RxJava 리액티브 프로그래밍 책 후기 by 김준비 about Java,Kotlin

  • Rx 진영의 간략한 역사와 함께 어떤 특징들을 갖고 있으며 RxJava를 학습하기 위해서는 어떤 개념을 알아야 하는지도 간단하게 설명해주기 때문에 입문자가 보기에는 더없이 좋은 책이라 생각이 든다
  • RxJava에 포함되어 있는 클래스나 함수 등에 대해서 설명하고 있기 때문에 응용 면에서 예제가 많이 부족하고 단조롭다
  • RxJava를 처음 접하는 사람에게는 좋은 책이지만 RxJava를 어느정도 알고 있는 사람이 좀 더 깊은 학습과 경험을 위해 구매하기에는 맞지 않는 책인 것 같다


20.03.16 ~ 20.03.20 TWIL by 김진학

  • // AS-IS public String foo() { BufferedReader rd = new BufferedReader( new InputStreamReader(response
  • toString(); } // TO-BE public String foo() { // resource를 닫아주는 try-with-resources를 사용하자
  • getContent()))){ String line; StringBuilder message = new StringBuilder(); while ((line = rd


[디자인 패턴 13편] 행동 패턴, 상태 (State) by 전시흠

  • context = Context() # 객체 상태를 ConcreteStateA 로 설정 후 액션 수행 context
  • request() # 객체 상태를 ConcreteStateB 로 설정 후 액션 수행 context
  • 이 State 를 상속받아 구체적인 상태 객체를 정의하는 ConcreteState 들은 다음과 같다


[디자인 패턴 14편] 행동 패턴, 책임 연쇄 (Chain of responsibility) by 전시흠

  • Handler 요청을 처리하는 목적의 추상 클래스 ConcreteHandler 가 이를 상속받아 HandleRequest() 를 구현한다
  • _successor = successor @abstractmethod def can_handle(self) -> bool: # 여기에 해당 클래스가 처리할 수 있는지 여부를 반환
  • class ConcreteHandler1(Handler): def can_handle(self): return False def handle_request(self): if can_handle(): # 처리 가능하면 여기서 처리하면 됨


[SW_Expert_Academy] 4581번 문자열 재구성 프로젝트 (Python) by 장동현 about Python

  • input_num = int(input()) for i in range(input_num): input_text = str(input()) text = list(input_text) answer = [] front = 0 end = len(text) - 1 while(True): if front == end: answer
  • append(text[end]) end = end - 1 elif text[front] == text[end]: temp_front = front temp_end = end change_index = end while(True): if temp_front == end and temp_end == front: break if text[temp_front] < text[temp_end]: change_index = front break elif text[temp_front] > text[temp_end]: change_index = end break temp_front = temp_front + 1 temp_end = temp_end - 1 answer
  • append(text[change_index]) if change_index == front: front = front + 1 elif change_index == end: end = end - 1 print("#{} {}"


[Spring] Spring의 IoC/DI Container by 염광호 about Spring

  • 빈 팩토리(Bean Factory) Spring의 IoC를 담당하는 핵심 컨테이너 입니다
  • /* * Bean Factory가 사용할 설정정보라는 표시 * (Component Scan을 통해 Bean으로 생성) */ @Configuration public class Factory { @Bean // 생성되어질 Bean이라는 표시 public A a() { return new A(); } @Bean(name="b_1") public B b_1() { return new B_1(); } @Bean(name="b_2") public B b_2() { return new B_2(); } }
  • 직접 만든 Factory Class가 존재하며 각 @Bean Annotation이 붙은 메서드 들은 각각 return 되어지는 오브젝트를 bean으로 생성한다는 의미입니다


Signal Processing For Communications (3-1) by 유재준

  • READ A LOT
  • THINK IN PICTURES
  • VISUALIZE MORE!


[JPA] ORM이란? by 김준서 about JPA


    Decision Science - 001 by 하준호

    • 사거리까지 걸어가면 직진할 수 있는 신호등을 빨리 만날 수도 있고 길을 건널 신호등을 만날 수도 있기 때문
    • 잘못된 신호등 알고리즘 이야 자명한 사실이라 내가 말할 수 있지만 이제 불혹의 나이에서 "카더라"로 비판을 할 수는 없기에(그 전에도 사실만으로 비판했기에 메이저 뉴스에 나갔으나) 이제 정말 개인적인 예를 들어 보려고 한다
    • Decision Science는 적어도 사람이 판단하는 것보다는 나은 판단을 해야 하는데 내가 신호등을 지금 건너는 게 맞는지 인공지능(Ok google이나 hey siri)에게 물었을 때 과연 신호등을 건너는 것에 대한 판단을 인공지능이 제대로 내려 줄 수 있을까?라는 것에 의문을 던져 본다


    클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (27장) by 최영록

    • 모노리틱 시스템이나 컴포넌트 기반 시스템에서 아키텍처를 정의하는 요소는 바로 의존성 규칙을 따르며 아키텍처 경계를 넘나드는 함수 호출들이다
    • 각 서비스의 내부는 자신만의 컴포넌트 설계로 되어 있어서 파생 클래스를 만드는 방식으로 신규 기능을 추가할 수 있다
    • 서비스 내부는 의존성 규칙도 준수하는 컴포넌트 아키텍처로 설계해야 한다