본문 바로가기

전체 글

(84)
Docker 설치 우분투 22.04 버전 / Ubuntu 22.04 기존에 설치된 docker 제거 sudo apt-get remove docker docker-engine docker.io 최신상태 업데이트 sudo apt-get update 도커 설치 sudo apt install docker.io 도커 모든 종속성 설치 sudo snap install docker 도커 설치 확인 docker -v 도커 테스트 hello-world 라는 이미지 실행 sudo docker run hello-world 여기서 run 명령어는 이미지가 없으면 pull 한 후 start 해줍니다. ( 도커 명령어는 따로 ) 도커 이미지 확인 sudo docker images 아까 전 내려받은 hello-world 가 있습니다. 컨테이너 확인 sudo docker ps -a 컨테이너 삭제 s..
Spring Security + Spring Boot / Rest API Login 구현 목차 1. 개요 2. 개발환경 3. 주요 클래스 4. Config 설정 5. 동작 흐름 6. 동작 결과 7. 참조 개요 Rest API 를 적용한 상태에서 JWT 방식에서 Session 방식으로 인증, 인가를 변경해야 했고, 스프링 시큐리티의 기본 설정인 Form 인증 방식을 Rest API 에 맞게 변경했던 방법을 공유하고자 포스팅을 하게 됐습니다. 개발환경 JDK 17 Spring Boot 3.1.3 Spring Security 6.1.3 DB Postgresql JPA 테스트 - Postman 주요 클래스 필터 관련 클래스 1. CustomAuthenticationFilter import lombok.Data; import com.fasterxml.jackson.databind.ObjectMappe..
11. 방문자 패턴 Visitor Pattern 목차 1. Visitor Pattern 이란? 2. Visitor Pattern 클래스 다이어그램 예시 3. 코드 예시 4. 실행 결과 Visitor Pattern 이란? 데이터 구조와 데이터 처리를 분리해주는 패턴 입니다. 데이터 처리 방식을 기존의 소스 코드 변경 없이 새로운 클래스 추가만으로 확장할 수 있으므로 개방-폐쇠 원칙을 준수할 수 있습니다. 데이터 구조는 Composite Pattern 을 사용해 표현을 사용합니다. Visitor Pattern 클래스 다이어그램 예시 이름 내용 Unit 데이터 구조를 나타내는 클래스 Item 단일 데이터 하나의정수 값을 가진 클래스 ItemList Unit 타입의 객체를 여러개 가질수 있도록 하여 단일데이터나집합데이터를 포함할 수 있도록 하는 클래스 Vis..
10. 데코레이터 패턴 / Decorator Pattern 목차 1. 데코레이터 패턴이란? 2. 데코레이턴 패턴 구조 예시 3. 코드 예시 4. 결과 5. 참조 데코레이터 패턴이란? Decorator Pattern 에서 Decorator 는 "장식하는 사람" 을 뜻하며, 우리가 크리스마트 트리에 여러가지 물건들을 Decoration 하듯, 기능을 계속해서 추가할 수 있는 패턴을 뜻합니다. Decorator Pattern 을 사용하면 실행 중에 동적으로 변경 또는 확장을 할 수 있게 됩니다. 데코레이터 패턴 구조 예시 이름 내용 Item 내용물(Strings) 과 장식(Decorator )을 다루기 위한 클래스 Strings Class 장식할 대상이 되는 클래스 Decorator Class Strings 를..
Spring boot 로 구글 클라우드 저장소(GCS) 에 파일 업로드 하기 목차 1. 프로젝트 생성 2. 버킷생성 3. 사용자계정 생성 4. json 키 생성 5. 스프링부트 프로젝트에 설정 6. 코드 구현 7. 동작 및 확인 프로젝트 생성 먼저 구글 클라우드 플랫폼으로 접속하셔서 다음과 같이 진행합니다. 프로젝트 이름을 입력하시고 만들기 클릭! 그럼 맨처음 클릭했던 프로젝트 선택을 누르시면 다음과 같이 생성된 것을 확인하실 수 있습니다. 버킷생성 버킷에 관한 문서 https://cloud.google.com/storage/docs/buckets?hl=ko 더보기 버킷 이란? 버킷은 데이터를 담는 기본 컨테이너입니다. Cloud Storage에 저장하는 모든 컨테이너가 버킷에 포함되어야 합니다. 버킷을 사용하여 데이터를 구성하고 데이터 액세스를 제어할 수 있지만 디렉터리와 폴더..
스프링 시큐리티 적용하기 먼저 스프링 부트 프로젝트를 생성해줍니다. start.spring.io 에서 생성하셔도 되고, IDE를 통해서 바로 생성해 주셔도 됩니다. 저는 인텔리제이를 사용하고 있으므로 인텔리제이를 이용하여 프로젝트를 생성하겠습니다. JDK 는 Java 17 빌드 툴은 Gradle 을 사용하겠습니다. 이후 Next 스프링 부트 는 3.1.5 버전을 사용하고 원래 여기서 스프링 시큐리티 의존성을 추가해도 되지만, 기존 프로젝트에 스프링 시큐리티를 적용해야하는 상황을 주기위해 프로젝트 생성 후 추가하도록 하겠습니다. create 눌러 프로젝트를 생성합니다. build.gradle 에 스프링 시큐리티 의존성을 추가합니다. implementation 'org.springframework.boot:spring-boot-st..
스프링 어노테이션 안됨 오류 (적용이 안될때) / Gradle 문제 원인 사진 과 같이 갑자기 어노테이션이 적용 안될때가 있다. 이는 spring dependecy 가 제대로 적용되지 않고 있다는 뜻입니다. 여러 이유가 있겟지만 깃허브에 push 하거나 프로젝트를 껏다켯다 했을 때 등 발생할 수 있습니다. 문제해결 build.gradle 에서 dependencies 를 다시 실행시켜주시면 해결하실수 있습니다.
9. 커맨드 패턴 / Command Pattern 목차 1. 커맨드 패턴이란? 2. 커맨드 패턴 구조 3. 예시 커맨드 패턴 (Command Pattern)이란? 하나의 명령(기능)을 객체화한 패턴 객체는 전달할 수 있고 보관할 수 있음, 즉 명령 (기능) 을 전달하고 보관할 수 있게 됨 배치 실행, Undo/Redo, 우선수위가 높은 명령을 먼저 실행하기 등이 가능해 짐 커맨드 패턴 구조 (Command Patteren Structure ) 예시 이름 내용 Command Command 기능을 추상화 한 인터페이스 ClearCommand 지우기를 담당하는 클래스 PrintCommand 출력을 담당하는 클래스 ColorCommand 색상부여를 담당하는 클래스 CommandGroup 일괄 명령을 담당하는 클래스 Main 메인 클래스 예시 Command 인터..