본문 바로가기

개발25

[Design Pattern] Strategy Pattern https://github.com/donghyeon-dev/StrategyPattern-with-Springboot Strategy Pattern 이란? behavior software design pattern that enables selecting an algorithm at runtime. 알고리즘을 런타임시 동적으로 선택할 수 있게 하는 행동디자인 패턴 알고리즘을 정의하고 각각을 캡슐화하여 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 어떠한 객체의 행위를 캡슐화하여 행위을 행하는 전략에 따라 쉽게 행위를 바꿀수 있도록 도와준다. 기능을 사용하는 부분 과 구현하는 부분 을 명확히 분리하는것이 중요하다. 💡 객체가 할수있는 행위들을 각각의 전략으로 만들어 놓고, 동적으로 행위의 방식(전략).. 2022. 1. 26.
[Mac] 환경변수 선언 Mac에서 환경변수를 선언하는 방법에는 2가지가 있다. [임시적 등록] Terminal 명령어 [영구 등록] zshrc / bashrc 에 직접 선언 Terminal 명령어 일시적으로 환경변수가 등록되지만, 터미널이 재부팅 되면 등록된 변수가 사라진다. $ export {환경변수명}={환경변수값} echo {환경변수명} 을 사용해서 환경변수 값을 확인할 수 있다. 수정 또한 같은방식으로 진행하면 된다. 첫번째 명령어와 같이 '=' 사이에 empty space가 존재하면 안된다. ./zshrc 에서 설정하는법 zsh사용자라면 vi ~/.zshrc, bash 사용자라면 v1 ~bashrc 를 사용하여 직접 들어가서 수정한다. export {환경변수명}="{환경변수값}" source ~/.zshrc 를 통해.. 2021. 8. 23.
[JPA] @AttributeConverter @AttributeConverter @AttributeConverter를 쓰면 좋은 상황 @AttributeConverter 는 다음과 같은 경우에 유용하게 사용 될 수 있다. JPA가 지원하지 않는 타입을 매핑할때 두개 이상 속성을 갖는 밸류타입을 하나의 컬럼에 매핑할때 AttributeConverter는 자바 타입과 DB 타입간의 변환을 처리해준다. AttributeConverter Interface & Method AttributeConverter의 인터페이스는 아래와 같이 정의되어 있다. package javax.persistence; public interface AttributeConverter { public Y convertToDatabaseColumn (X attribute); publi.. 2021. 8. 6.
Docker(2) - Container 다루기 Docker 컨테이너 다루기 컨테이너의 라이프사이클 도커 컨테이너는 실행중, 정지, 파기의 3가지 상태를 가진다. 이를 라이프사이클이라고 하며, run 명령으로 최초 실행한 시점의 상태는 실행중 이다. 컨테이너들이 같은 이미지로부터 생성이 되었다고 하더라도 별개의 상태값을 지닌다. 이것이 컨테이너와 이미지의 큰 차이점이다. 실행 중 상태 run 명령의 인자로 지정된 도커 이미지를 기반으로 컨테이너가 생성되면 이 이미지를 생성했던 Dockerfile에 포함된 인스트럭션에 의해 애플리케이션이 실행된다. HTTP요청을 받는 서버 애플리케이션이면 오류로 인해 종료되지 않는 한 실행중 상태가 지속된다. 이에 비해 명령이 바로 실행되고 끝나는 명령행 도구 등의 컨테이너는 실행중 상태가 길게 유지되지 않는다. 실행이.. 2021. 8. 4.
Docker(1) - image 와 container 사용법 Dokcer Image & Container Docker Image 도커 컨테이너를 구성하는 파일 시스템과 실행할 애플리케이션 설정을 하나로 합친것으로 컨테이너를 생성하는 템플릿 역할 Docker Container 도커 이미지를 기반으로 생성되며, 파일 시스템과 애플리케이션이 구체화돼 실행되는 상태 Docker Image 만들어보기 목표 : Go언어로 만든 간단한 웹서버를 도커 컨테이너에서 실행 폴더를 하나 생성해서 main.go 파일과 Dockerfile 파일을 아래와 같이 생성해준다. dev/Personal/docker/main.go /** * 모든 HTTP 요청에 대해 Hello Docker!! 라는 응답 * 모든 8080로 요청을 받는 서버 애플리케이션으로 동작 * 요청을 받으면 received .. 2021. 8. 4.
[Design Pattern] 객체지향의 5대 원칙 Solid원칙 SOLID원칙 자바 관련도서를 찾으면서 리뷰글을 보던 도중 계속해서 나오는 SOLID란 단어에 대해 낯이 익으면서도 정확한 뜻을 모르기 떄문에 찾아보게 되었다. 프로그래밍 설계에서 항상 나오는 객체지향 5대 원칙으로 앞자를 따서 SOLID원칙이라고 부른다. SRP(단일 책임 원칙) OCP(개방-폐쇄 원칙) LSP(리스코프 치환 원칙) DIP(의존 역전 원칙) ISP(인터페이스 분리 원칙 Single Responsiblity Principle(단일책임원칙) 정의 한 클래스는 단 한가지의 변경 이유만을 가져야한다. 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임을 져야한다. 내용 작성된 클래스는 하나의 기능 만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임(기능)을 수행하는데 집중되어야 한.. 2021. 7. 24.
[Spring] Bean을 주입받을때, @Autowired는 권장되지 않음 Bean을 주입받을때, @Autowired는 권장되지 않음 IntelliJ에서 @Autowired를 사용하다보면 다음과 같은 메세지를 종종 보게된다. 필드주입은 권장되지 않는다. 생성자 주입을 사용. Spring에서 Bean을 주입받는 방법은 아래와 같다. @Autowired setter 생성자 이중 가장 권장하는 방식이 생성자로 주입받는 방식이다. 생성자 주입을 권고하는 이유 순환참조 방지 final 선언 테스트코드 작성의 용이 1. 순환참조방지 생성자 주입방식은 먼저 생성자의 인자에 사용되는 Bean을 찾거나 Bean Factory에서 만든다. 그 후에 찾은 인자 Bean으로 주입하려는 Bean의 생성자를 호출한다. ⇒ 먼저 Bean을 생성하지 않고 주입하려는 Bean을 먼저 찾는다. setter와 .. 2021. 4. 27.
[JPA] Entity에서 @Builder 와 @NoArgsConstructor 같이 사용할때 예외 lombok @Builder 와 @NoArgsConstructor 같이 사용할때 예외 예외유발 @Entity @Builder @Getter @NoArgsConstructor public class AccountEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) // AutoIncrement private Long id; @Column(length = 25, nullable = false) private String email; @Column(length = 20, nullable = false) private String password; } //빌드 에러 전문 /Users/autocat/dev/personal/omr/src/main/jav.. 2021. 4. 23.
Vue 따라해보기 개발환경세팅 codesandbox.io/dashboard new Sandbox 클릭 2. Vue 템플릿 생성 VSCode $npm install -g @vue/cli ... # or $yarn global add @vue/cli ... # after install # 특정 폴더로 이동하여 $vue create project-name yarn serve 혹은 npm serve 를 통해 실행시킨다. 해당 글은 VSCode 형식으로 작성됨 HTML태그 사이에 Data 전달하기 src/App.vue 싱글컴포넌트 형태로 사용 {{ title }} 메서드 사용하기 {{ title }} 인사 넌 누구니? Directive의 여러 형태 📒Directive(v-) 상위컴포넌트 → 하위컴포넌트 데이터 전달하기 this.$.. 2020. 12. 1.