본문 바로가기

분류 전체보기41

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.
사례를 통해 배우는 SRP 목표 한개의 클래스로 문제를 구현해보고, 프로젝트를 진행하면서 바뀌는 요구사항이나 유지보수에 대응하며 기존 구조의 한계가 무엇인지 확인한다. 이를 통하여 SRP(단일책임원칙)을 배운다. 요구사항 30-01-2017,-100,asd 30-01-2017,500,dsa ... 은행 입출금 내역의 총 수입과 총 지출은 각각 얼마인가? 결과가 양수인가 음수인가? 특정 달엔 몇 건의 입출금 내역이 발생했는가? 지출이 가장 높은 상위 10건은 무엇인가? 돈을 가장 많이 소비하는 항목은 무엇인가? KISS(Keep it short and simple)원칙을 이용해 한개의 클래스로 구현하자. 내용 // 입출금 내역 합계 계산 package com.studyjava.chapter2; import java.io.IOExce.. 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.
[Spring] Test시, MockMvc 요청의 Response가 403Error가 날때 Test시, MockMvc 요청의 403Error @ExtendWith(SpringExtension.class) @SpringBootTest @AutoConfigureMockMvc public class LoginServiceTest { private static final Logger log = LoggerFactory.getLogger(CharacterServiceTest.class); @Autowired MockMvc mockMvc; @Autowired ObjectMapper objectMapper; @Test void InvalidPassword__sholud_pass_with_error_result() throws Exception { LoginInpVo inpVo = new LoginInpVo.. 2021. 4. 22.
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.
[IntelliJ] command line is too long. Shorten command line for... 이와 같은 에러와 함께 Run / Build가 안될시 해당 프로젝트의 .idea/workspace.xml을 들어가서 태그 사이에 를 삽입하면 실행된다. 2020. 9. 14.
FCM - Firebase Cloud Messaging - (1) 개요 및 설정 (작성중) 1. FCM (Firebase Cloud Messaging) - Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션입니다. FCM을 사용하면 새 이메일이나 기타 데이터를 동기화할 수 있음을 클라이언트 앱에 알릴 수 있습니다. FCM 주요 기능 알림 메시지 또는 데이터 메시지 전송 사용자에게 표시되는 알림 메시지를 전송합니다. 또는 데이터 메시지를 전송하고 애플리케이션 코드에서 임의로 처리합니다. 자세한 내용은 메시지 유형을 참조하세요. 다양한 메시지 타겟팅 단일 기기, 기기 그룹, 주제를 구독한 기기 등 3가지 방식으로 클라이언트 앱에 메시지를 배포할 수 있습니다. 클라이언트 앱에서 메시지 전송 FCM의 신뢰성 높고 배터리 효율적인 연결 채널을.. 2020. 8. 27.