1️⃣ keypair.pem 다운로드 EC2를 처음 생성할 때 받은 keypair를 잘 보관해 둔다. (딱 한 번만 다운로드 가능) 2️⃣ 경로 이동 후 keypair의 권한 변경 keypair가 있는 곳으로 경로 이동 $ cd ~keypair경로 내 경우 > cd /Users/컴퓨터이름/Downloads keypair의 권한 변경 $ chmod 600 keypair이름.pem keypair 이름이 abcd.pem 일 경우 > chmod 600 abcd.pem 을 터미널에 입력해 준다. 3️⃣ 터미널에서 접속 터미널에서 접속 $ ssh -i key-pair-이름.pem username@EC2퍼블릭IPv4DNS > ssh -i /key-pair-이름.pem username@EC2퍼블릭IPv4DNS 여기서 ..
@Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf().disable(); return http.build(); } Spring Security 코드를 작성하면서 CSRF 공격에 대비를 하지 않고 이를 비활성화시켜도 되는지에 대한 의문이 들었다. 이에 대해 잘 모른 채로 보안 코드를 작성하는 것은 옳지 않다고 생각되어서 CSRF 보안 코드를 왜 비활성화시키는지 찾아 정리해 보았다. 1. CSRF(Cross-Site Request Forgery) 1.1 Cookie & Session CSRF를 알아보기 앞서 쿠키와 세션에 대한 간단한 이해가 필요하다. 사용자가 특정 서버에 로그인하면 일반적으로..
@Controller 🆚 @RestController @Controller 기존의 Spring MVC가 view을 사용하기 때문에 view(화면)를 return 데이터는 ModelAndView객체를 이용해 Controller에서 Client로 전달 @ResponseBody 어노테이션을 사용 시 View를 return하지 않고 Controller에서 직접 데이터 return 가능 @RestController 모든 메서드는 @ResponseBody 어노테이션 기본으로 작동 컨트롤러 클래스의 각 메서드마다 @ResponseBody을 추가할 필요 X View가 필요없는 REST 방식에서 주로 사용 ResponseEntity란 스프링에서 제공하는 ResponseEntity 타입은 개발자가 직접 결과 데이터와 HT..
H2란?Java로 작성된 오픈소스 RDBMS스프링 부트가 지원하는 인메모리 관계형 데이터베이스인메모리로 띄울 경우 애플리케이션을 재시작할 때마다 초기화별도의 설치 필요 없음로컬 환경, 테스트 환경에서 많이 사용H2 설치https://www.h2database.com/html/main.html 에서 Download All Platforms를 클릭한다. H2 Database EngineH2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Bro..
1. .gitignore란? 민감한 정보가 들어있는 파일이나 형상관리할 필요가 없는 파일들은 git에서 더이상 추적(track)하지 않도록 .gitignore 파일에 추가한다. - .gitignore 파일은 프로젝트 디렉토리 최상단에 위치하게 한다. 2. .gitignore 사용법 1) 작성패턴 - #로 시작하는 라인은 주석, 무시한다. - 표준 glob 패턴을 따른다. - 디렉토리는 끝에 슬래시(/)를 사용해 표현한다. - 느낌표(!)로 시작하는 경우는 예외로 처리한다. # : comments # 특정 확장자를 가진 모든 파일 무시 *.txt # 예외인 경우 !lib.a # 현재 경로에 있는 fileName 무시 /fileName.txt # 특정 디렉토리의 모든 파일 무시 build/ # 특정 디렉토리..
1️⃣ Entity에 사용한 롬복 @Entity 테이블과의 매핑 @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 불린다. @DynamicInsert null 인 필드값이 insert 나 update 시 제외되게 하는 방법은 org.hibernate.annotations. 패키지의 @DynamicInsert (insert 시 null 인필드 제외) @DynamicUpdate (update 시 null 인필드 제외) 를 사용한다. @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 만든다. https://yuja-kong.tistory.com/99 [Lombok] @Builder 사용 시 @NoArgsConstructor 관련 에러 해결 Spring Boot로 개..
[문제] https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net [풀이] "아홉 난쟁이의 키는 모두 다르지만 그중 일곱 난쟁이의 크기의 합은 100이 된다" 는 것은 sum(난쟁이 리스트) - (난쟁이1 + 난쟁이2) == 100과 같다. 두 난쟁이를 구하기 위해 전체 탐색을 해야 한다. [코드] import sys men = [int(sys.stdin.readline()) for _ in range(9)] flag = False for i in range(9..
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [코드] def solution(s): cnt, zero_cnt = 0, 0 while s != '1': zero_cnt += s.count('0') s = bin(len(s.replace('0', '')))[2:] cnt += 1 return [cnt, zero_cnt]
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/12951# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] 문자열을 split(' ') 함수로 쪼개 리스트에 담았다. 괄호안에 ' ' 가 있기 때문에 공백문자 1개를 기준으로 쪼갠다. 문자열에 "Hello Hi" 이런식으로 공백문자가 2개 들어있었던 경우 ["Hello", "", "Hi"] 이렇게 리스트가 만들어진다. 따라서 리스트 원소의 길이가 0이 아닐 경우 upper과 lower 함수를 이용해 대문자 소문자 조건을 충족한다. 리스..