전체 글

안녕하세요. 고민하는 개발자가 되고 싶은 Hayden 입니다. 초보 개발자의 공부 과정을 기록하는 블로그입니다. 현재 Spring boot에 관심을 가지고 공부하고 있습니다.
·알고리즘
문제문제 바로가기풀이.코드// Don't place your source in a packageimport java.util.*;import java.lang.*;import java.io.*;// Please name your class Mainclass Main { public static void main (String[] args) throws java.lang.Exception { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); System.out.println(a+b-c); Sys..
01. 컨테이너란가상화의 필요성PC에서 여러 소프트웨어를 실행시킬 경우 아래와 같은 문제들이 발생함OS 호환성 문제라이브러리 의존성 문제보안 문제등등 ...이런 문제를 해결하기 위해 가상화 라는 방법을 사용하여, 하나의 PC에서 각 소프트웨어의 독립적인 실행을 보장함 컨테이너는 이런 가상화 방법 중 한가지이다.컨테이너 VS 가상머신가상화 하면 가장 먼저 떠오르는 방법이 가상머신(Virtual Machine, VM) 을 사용하는 방법일 것이다.그렇다면 가상머신과 컨테이너의 차이점에는 어떤 것이 있을까?리소스 사용: 컨테이너는 OS 커널을 공유하여 더 가볍고 효율적임격리 수준: VM은 완전한 OS를 포함하여 더 강력한 격리를 제공함시작 시간: 컨테이너는 OS 부팅 과정이 없어 더 빠르게 시작됨유연성: VM은..
00. 서버에서 클라이언트로 이벤트를 보내야 하는 필요성서버에서 클라이언트에게 이벤트 처리를 해주어야 하는 경우는 생각보다 쉽게 떠올릴 수 있다. 예를 들어 네이버 카페에서의 채팅 기능을 생각해보자.클라이언트가 특정 유저에게 채팅을 보내면, 해당 정보는 상대방에게 바로 가지 않고 먼저 서버로 전송된다.이후 상대 유저가 채팅 내용을 얻기 위해서 서버에 해당 채팅 내용을 요청해야한다.여기서 한가지 쟁점은 상대 유저는 자신에게 채팅이 온 사실을 어떻게 인식하는가? 이다.이러한 상황에서는 서버에서 클라이언트에게 이벤트를 전송해야한다.서버가 채팅 전송 요청을 받으면, 상대 유저에게 채팅이 왔다는 이벤트 처리를 해주면 위의 문제가 해결된다.이 외에도 푸쉬알림, 메일, 공지사항 등 다양한 기능에서 서버의 이벤트 처리..
00. 문제 상황배포 전에는 멀쩡히 인식되던 이미지가, ec2 배포 후에는 계속 이미지 경로를 인식 못함01. 문제 원인윈도우 환경에서는 파일 절대 경로에서 디렉토리를 구분할 때 백슬래시()를 사용함그래서 기존 프로젝트에서는 이미지 경로를 백슬래시를 사용해서 지정해놨음하지만 Linux 등 Unix 환경에서는 백슬래시가 아닌 슬래시(/)를 사용하여 디렉토리 구분그래서 기존의 이미지 경로를 인식하지 못했음02. 해결슬래시(/)를 사용하여 경로 작성 이미지가 무사히 표시됨
00. 상황JWT 인증 방식에서 Access Token의 취약한 부분을 보완하기 위해 Refresh Token을 추가로 사용한다.이때 Refresh Token은 비교적 안전하지만, 긴 생명 주기를 가지기 때문에 한번 탈취될 경우를 대비하여 서버에서 직접 관리를 할 필요가 있다.이를 위해 내가 진행중인 프로젝트에서는 Refresh Entity를 정의하여, 토큰이 발급될 때마다 DB에 저장하는데, 이때 만료된 토큰이 제거되지 않고 계속 쌓이는 문제점을 발견했다.이를 해결하기 위해 스케줄러를 사용하여, 자동으로 만료된 Refresh Token을 제거하는 로직을 도입했다.01. 스케줄러 사용법스케줄러 사용법은 간단하다.1. Application.java@SpringBootApplication@EnableJpaA..
01. ORS란?기본적으로 동일 출처 정책(SOP, Same-origin policy) 웹 통신 시, 다른 도메인 주소끼리는 통신을 하지 못한다.이때, 다른 도메인 주소 끼리 통신을 하기 위해서는 CORS를 통해야한다.이때 CORS(Cross-origin Resource Sharing, 교차 출처 리소스 공류)는 서로 다른 도메인끼리 자원을 요청할 수 있도록 허락을 받는 체제를 의미한다.02. Spring boot에서 CORS 설정하기기본적으로 스프링부트에서 CORS를 설정하는 방법은 1. 전역적으로 설정하기, 2. 각 Controller에 직접 설정하기 가 있다.여기서는 전역적으로 설정하는 방법을 사용했다.@Configurationpublic class WebConfig implements WebMvc..
Im_Hayden
Hayden의 개발 일지