본문 바로가기

전체 글360

[HTTPS] 인증 및 보안 (feat. 공개키와 대칭키) HTTP와 HTTPS Hyper Text Transfer Protocol Secure Socket layer HTTP란 인터넷에서 데이터를 주고받을 수 있는 통신 프로토콜을 말하며, 80포트를 사용하고 있다. TCP/IP 위에서 동작하며 확장이 가능하다. 오늘날 하이퍼텍스트 문서 뿐만 아니라 이미지, 비디오, HTML 폼 결과와 같은 내용을 서버에 POST 하기 위해서도 사용된다. Stateless이기 때문에 이전 통신에 대한 정보를 기억하지 않으며, Conectionless 특성 또한 가져서 서버가 요청에 대한 응답을 마치면 연결을 끊는다. 암호화되지 않은 평문 데이터를 전달하는 프로토콜이기 때문에 기밀한 정보를 주고받기에는 적절하지 않다. 따라서 HTTPS가 등장했다. HTTPS는 SSL 혹은 TLS.. 2022. 9. 20.
[Day 90] 인증 / 보안 학습 주제 이진 탐색 알고리즘 HTTPS Hashing Cookie Session 웹 보안 공격(SQL Injection, CSRF) 새롭게 배운 내용 2022.09.20 - [Etc/Algorithm] - 탐색 2022.09.20 - [Back-End/Spring Security] - 인증 / 보안 인증(Authentication): 암호화를 이용해서 사람의 디지털 정체성을 확인하는 과정 인가(Authorization): 권한 부여 HTTPS가 적용된 웹 사이트의 인증서는 브라우저에서 접속한 서버가 의도한 서버임을 보장한다. 기밀성(privacy)과 무결성(Integrity) 특성을 가진다. 보강할 내용 마인드맵으로 지금까지 공부한 내용 그려 보기 블로킹과 논블로킹 대칭키와 비대칭키 Cookie Opt.. 2022. 9. 20.
[Day 89] 기술 면접, Section 3 회고 학습 주제 기술 면접 테스팅 복습 새롭게 배운 내용 2022.09.18 - [Back-End/Spring MVC] - Spring Boot | Testing을 공부하며 사용한 클래스 Spring Boot | Testing을 공부하며 사용한 클래스 📗: 인터페이스, 📄: 클래스 helper ㄴ 📗 ControllerTestHelper : HttpMethod에 따라 요청 메서드 생성, URI 반환 ㄴ 📗 MemberControllerTestHelper : Member 컨트롤러에 대한 URI를 호출할 수 있도록 연결 ㄴ.. cookiee.tistory.com 보강할 내용 API 문서화 복습 PageImpl의 정확한 용도, Pageable과의 차이 @Mock과 @MockBean의 차이 회고 Section 3에서.. 2022. 9. 19.
[Spring Boot] JUnit으로 단위 테스트(Unit Test) 코드 작성하기 📗: 인터페이스, 📄: 클래스 helper ㄴ 📗 ControllerTestHelper : HttpMethod에 따라 요청 메서드 생성, URI 반환 ㄴ 📗 MemberControllerTestHelper : Member 컨트롤러에 대한 URI를 호출할 수 있도록 연결 ㄴ 📄 StubData : Map으로 HttpMethod에 따라 Dto 객체를 생성하여 반환 controllerTest ㄴ 📄 MemberControllerTest : helper를 활용하여 테스트 수행 단위 테스트 코드를 작성할 때 아래 두 가지의 라이브러리가 사용된다. JUnit5: 자바 단위 테스트를 위한 테스팅 프레임워크 AssertJ: 자바 테스트를 돕기 위해 다양한 문법을 지원하는 라이브러리 단위 테스트는 given - when.. 2022. 9. 18.
Spring Boot에서 메일 발송하기(Google SMTP) 회원가입을 하면 이메일로 회원가입 성공 메시지를 전송할 수 있다! 전체 로직: 클라이언트 > Controller Post 요청 > Service의 회원가입 로직 > Event 발행 > Email 전송 로직 실행 0. Google 앱 비밀번호 발급 Google 계정 관리 > 2단계 인증 활성화 > 앱 비밀번호 > 메일, Windows 컴퓨터로 지정하고 발급 1. 의존성 추가 //build.gradle implementation 'org.springframework.boot:spring-boot-starter-mail' 2. Gmail SMTP 설정 추가 //application-local.yml mail: smtp: host: smtp.gmail.com port: 587 username: ${EMAIL_U.. 2022. 9. 17.
애플리케이션 빌드 / 실행 / 배포 애플리케이션을 서버 환경에서 실행하려면 Gradle이나 Maven 같은 빌드 툴로 빌드하는 과정이 필요하다. 빌드 🌳 IntelliJ IDE Gradle 탭 > 프로젝트 이름 > Tasks > build > :bootJar 또는 :build task build/libs 디렉토리에 Jar 파일(로컬 PC에서 실행 가능한 파일)이 생성된다. :build : :assemble, :check 같이 Gradle에서 빌드와 관련된 모든 task를 실행한다. 실행 가능한 Jar 파일 외에 plain Jar 파일이 하나 더 생성된다. :bootJar : 모든 task를 실행하는 것이 아니라 실행 가능한 Jar 파일을 생성하기 위한 task만 실행된다. 🌳 Gradle Task Window 터미널 PS D:project.. 2022. 9. 16.