stack

stack from platanus

Strategy pattern
platanus |

스트래티지 패턴 전략패턴이라고도 불리는 스트래티지 패턴은 가튼 문제를 해결하는 여러 코드가 클래스별로 캡슐화 되어있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 코드로 해결할 수 이쎅 하는 디자인 패턴이다. 기존 코드 우선 다음 구조의 클래스가 있다고 보자 아래는 Guitar를 상속(extends) 받는 두 클래스다. 아래는 간단한 기타 플레이어에 대한 테스트다. 아래는 실행결과다 별로 중요한... » read more

Generics 개요
platanus |

제네릭 제네릭이란? 프로그램에서 변수를 선언할 때 모든 변수는 자료형이 있다. 메소드에서 인자를 사용할 때도 자료형을 갖고 있따. 변수나 메소드의 자료형을 필요에 따라 여러 자료형으로 바꿀 수 있다면 프로그램이 훨씬 유연할 것이다. 어떤 갑싱 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 Generic programming 이라고 한다 Generic 프로그램은 reference 자료형에 대한... » read more

Docker 시작하기 (Windows/macOS)
platanus |

Windows 10과 맥에서 docker를 설치하고 WSL과 통합하여 기본적인 컨테이너를 올려보는 기회. Windows10 + WSL2 + Ubuntu 현 시점에서 WSL2+Ubuntu는 기본 사양이므로 넘어가도록 하겠다. 필요하면 이 링크 참고. 바쁜 사람들을 위한 짧은 코드 (powershell에서 실행해야된다) WSL 설치 후 MS스토어에서 Ubuntu를 받으면 된다. 대부분 Ubuntu를 많이 쓴다. 추후 wsl을 사용하기 위해 Windows Terminal도 설치하면 좋다. 여기서는 생략.... » read more

3차 중간점검
platanus |

안건 자바 다시 보기 로드맵 짜기 디자인 패턴 책 비교 C 다시보기 로드맵 짜기 자바 로드맵 (20210309) → Do it 자바 프로그래밍 (우테코 할 때 보던거 마저 보기) [ ] Class Object String Wrapper [ ] ⭐️ Generics [ ] Collection → 아는 내용이니 간략하게만 지나가겠음 List ArrayList LinkedList Set HashSet TreeSet Map HashMap TreeMap... » read more

Maven과 gradle의 차이
platanus |

두 빌드 툴의 사용법은 인터넷에 잘 정리된 글이 많으니 차이점에 대해서 설명해보고자 한다. Maven Apache에서 만든 소프트웨어 프로젝트 관리 및 comprehension 툴이다. POM 개념을 기반으로 프로젝트의 빌드, 보고 및 문서를 중앙 관리할 수 있다. → 프로젝트의 빌드 Lifecycle 기반 프레임워크. mvn 명령어로 관리한다. XML기반의 pom.xml파일로 설정한다. Gradle Maven을 대체할 수 있는 프로젝트 구성 관리 및... » read more

REST의 의미와 연결된 지식들
platanus |

REST REpresentational State Transfer, Roy Fielding REpresentational State Transfer → 표현 상태 전송 월드 와이드 웹(World Wide Web a.k.a WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴이다. REST가 디자인 패턴이다, 아키텍처다 많은 이야기가 존재하는데, 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로... » read more

RESTful API 가이드
platanus |

REST란? REpresentational State Transfer, Roy Fielding REST는 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로 말하자면, REST 는 Resource Oriented Architecture 이다. API 설계의 중심에 자원(Resource)이 있고 HTTP Method 를 통해 자원을 처리하도록 설계하는 것이다. REST API 디자인 가이드 1) URI는 정보의 자원을 표현해야 한다. → 리소스명은 동사보다는 명사를 사용2) 자원에 대한 행위는 HTTP... » read more

스프링 부트에서 Exception
platanus |

부트에서 예외처리 아래의 3가지 방법이 있다. 자바의 방법 : try/catch 사용 컨트롤러 단위 : 각각의 컨트롤러에서 @ExceptionHandler 사용 전역 처리 : @ControllerAdvice을 사용한 전역 예외처리 @ExceptionHandler는 중복코드가 발생한다고 한다.. 여기서 나올 중복 코드가 그 중복이 아닐텐데.. @ControllerAdvice 스프링 3.2에서 추가됨. Annotation만으로 추가 설정없이 예외 처리 가능. @ControllerAdvice : 예외처리 객체임을 알림. @org.springframework.web.bind.annotation.ExceptionHandler(Exception.class) : 예외 발생시... » read more

스프링 부트에서 AOP
platanus |

부트에서의 AOP 스프링 부트에서의 AOP도 역시 마찬가지로 적용할 수 있다. slf4j 로깅을 aspect로 등록하는 코드. 예제로써 보자.. 모르는 내가 봐도 좋은 코드는 아닌 것같음. 책에 또 코드 빠져있음…. 따로 bean등록을 하지 않았기 때문에 component scan으로 잡는다. AOP를 사용하기 위해 Aspect 어노테이션을 붙인다. Slf4j 어노테이션으로 slf4j 객체를 주입받는다. (log) Around로 aspect가 작동할 범위를 execution 필터 지정한다.... » read more

Interceptor
platanus |

Interceptor 스프링의 인터셉터는 어떤 URI를 호출했을 때 요청 컨트롤러가 처리되기 전 또는 후 작업을 하기 위해 사용 된다 (프록시 패턴) 이런 역할은 Filter와 Interceptor로 수행할 수 있다. Spring의 MVC 요청 lifecycle 위치 filter는 dispatcher servlet 앞 단에서 동작 interceptor는 handler로 가기 전 동작 제어권 filter는 servlet의 일부 기능이다. interceptor는 spring framework내에 있기 때문에 bean을 사용할... » read more