목록분류 전체보기 (50)
개발자의 서재
* 로컬에 도커 데스크탑이 먼저 설치되어 있어야 한다. - 도커-마리아디비 설치 $ docker pull mariadb:10.3.20 - 설치확인 $ docker images - 마리아디비 컨테이너 실행 $ docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name dockerMariadb mariadb:10.3.20 옵션 설명 ------------------------------------------------- -d detached mode 흔히 말하는 백그라운드 모드 -p 호스트와 컨테이너의 포트를 연결 (포워딩) -v 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e 컨테이너 내에서 사용할 환경변수 설정 --name 컨테이너..
목적 springBoot와 RabbitMQ 연동 RabbitMQ를 통해 문자열과 객체 sender, receive 만들어보기 개발순서 Local에 docker를 통해서 RabbitMQ 설치 문자열 sender, receiver 개발, 테스트 객체 sender, receiver 개발, 테스트 메시지 흐름 Sender 에서 Receiver로 메세지 전송 Receiver 에서 메세지 수신 Receiver 에서 메시지 수신 후 Sender로 메세지 리턴 Sender 에서 리턴받은 메세지 수신 소스(센더) : https://github.com/ironmask431/springboot-rabbitMq-sender 소스(리시버): https://github.com/ironmask431/springboot-rabbit..
* 자료구조란? 자료구조란 데이터를 표현하거나 저장하는 방법이다. 1. 단순구조 기본자료형 (2진수, 정수,실수, 문자, 문자열 ) 2. 파일구조 순차파일, 색인파일, 직접파일 3. 선형구조 = 데이터간 관계가 1:! 리스트, 연결리스트, 데크, 스택, 큐 4. 비선형구조 = 데이터간 관계가 1:N / N:M 트리 - 일반트리, 이진트리 그래프 - 방향그래프, 무방향 그래프 * 알고리즘이란? 자료구조가 데이터를 표현하거나 저장하는 방법이라면 알고리즘은 데이터를 이용하여 문제를 해결하기 위한 절차나 방법. * 좋은 알고리즘을 위한 5가지 조건 1. 입력 - 0개이상의 입력 2. 출력 - 1개 이상의 출력 3. 명확성 - 각 명령어의 의미는 모호하지 않고 명확성 4. 유한성 - 한정된 수의 단계후에는 반드시..
https://www.hanumoka.net/2019/01/21/springBoot-20190121-springboot-deploy-docker/ springboot - docker 이미지로 만들어 실행하기 들어가기SpringBoot로 생성한 스프링 프로젝트를 docker 이미지로 만들어서 동작시키는 예제를 만들어보겠다. 준비물윈도우에 docker for windows를 설치 윈도우에 maven 설치 springboot 웹 프로젝트 준비 Spr www.hanumoka.net 위 링크 참고 1. gradle > build 를 실행해서 jar 파일을 생성한다. build 가 완료되면 /build/libs/ 경로에 jar 파일이 생성된다. 2. 커맨드에서 아래 명령어를 실행한 후 localhost:8080 에..
각 Controller 의 mapping Url 별 테스트코드를 작성해보았다. @SpringBootTest 를 사용하였고, @Before 에서는 data.sql을 통해 insert 되는 기본 데이터를 삭제하고 테스트용 user 정보입력 + Security Context 에 user 정보를 등록하고, jwt 토큰 발급 + 헤더에 토큰등록을 하여 토큰인증이 필요한 api가 정상 실행되도록 하였다. @After 에서는 테스트 후 입력된 데이터를 모두 삭제하도록 하였다. JoinControllerTest.java package com.leesh.springbootjwttutorial.restApiTest; import com.fasterxml.jackson.databind.ObjectMapper; import ..
REST API 를 SWAGGER 를 이용해 문서화 해보기 1. 스웨거 라이브러리 추가 maven repository 에서 swagger 로 검색해보았다. 검색 결과가 여러개 나와서 이것처것 찾아보다가 아래 2개가 적합한 것으로 확인되었다. springfox swagger ui => swagger 를 브라우저ui로 볼수있는 기능 springfox swagger2 => swagger 기능 2. build.gradle 에 의존성추가 implementation 'io.springfox:springfox-swagger-ui:2.9.2' implementation 'io.springfox:springfox-swagger2:2.9.2' 3. config 패키지에 SwaggerConfig.java 생성 package..
- 상품,주문 entity, dto, servcie, controller 추가 Entity 관계도(ERD) 1. entity 생성 Product.java package com.leesh.springbootjwttutorial.entity; import lombok.*; import javax.persistence.*; /** * 상품 entity */ @Entity @Table(name="product") @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class Product { @Id @Column(name="prd_id") @GeneratedValue(strategy = GenerationType.IDENTITY) // ..
- 회원가입 api 생성 - 권한검증 확인 1. util 패키지 생성 > SecurityUtil.java 클래스 생성 package com.leesh.springbootjwttutorial.util; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import j..
- DTO 생성 - Repository 관련 코드 생성 - 로그인API, 관련 로직 생성 1. DTO 패키지 생성 2. LoginDto.java 생성 package com.leesh.springbootjwttutorial.dto; import lombok.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class LoginDto { //@NotNull = requestBody로 입력받을때 not null 체크 @NotNull @Size(min=3, max=50) pri..
- JWT 설정 추가 - JWT 관련 코드 추가 - Security 설정 추가 1. application.yaml 에 jwt관련 설정 추가 여기서는 HS512 알고리즘을 사용해 암호화를 할 것이기 때문에 Secret Key는 64 byte 이상이어야 한다. Secret Key는 특정 문자열을 Base64 로 인코딩한 값으로 설정한다. jwt: header: Authorization #secret : 별도 문자열을 base64로 암호화한값 secret: c3ByaW5nYm9vdC1qd3QtdHV0b3JpYWwtc3ByaW5nYm9vdC1qd3QtdHV0b3JpYWwtc3ByaW5nYm9vdC1qd3QtdHV0b3JpYWwK #토큰만료시간(ms) token-validity-in-seconds: 3600 ba..