New 🫙
-
Spring Security 동작 원리 이해하기 Spring Security : 스프링 기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 Spring Security 관련 기본 용어 Authentication (인증) : 해당 사용자가 본인이 맞는지 확인하는 절차 Authorize (인가) : 현재 사용자가 어떤 서비스 및 페이지에 접근할 수 있는 권한이 있는지 확인 Authorization (권한) : 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되어 있는지를 결정 Principal (접근 주체) : 보호받는 Resource에 접근하는 대상 Credential (비밀번호) : Resource에 접근하는 대상의 비밀번호 Spring Security는 기본적으로 인증 절차 이후 인가 절차를 진행하게 되며, 인가 과정에서 해당 리소스..
-
Spring Boot + JPA 회원가입 유효성 검사 회원가입 시 사용자가 입력한 정보가 서버로 전송되기 전에 특정 규칙에 맞게 입력했는지, 이미 사용하고 있는 닉네임이나 이메일은 아닌지 확인하는 검증 단계가 필요하다. 참고 - @Validated : 스프링 전용 검증 애너테이션 - @Valid : 자바 표준 검증 애너테이션 클라이언트 검증과 서버 검증을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수이다. 검증 로직을 모든 프로젝트에 적용할 수 있게 표준화한 것이 바로 Bean Validation이다. ✓ Validation 유효성 검사하기 1. build.gradle 설정하기 validation 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2...
-
신입 개발자 기술 면접 공부하기 - 네트워크 / 운영체제 / 공통 해당 글은 망나니 개발자님의 포스트를 정리한 글입니다. 1. HTTP 프로토콜에 대하여 : HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고받기 위한 프로토콜로 서버/클라이언트 모델을 따릅니다. HTTP는 상태 정보를 저장하지 않는 Stateless와 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless이 특징입니다. 장점 통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어서 서버 디자인이 간단하다. 각각의 HTTP 요청에 독립적으로 응답만 보내주면 된다. 단점 이전 통신의 정보를 모르기 때문에 매번 인증을 해주어야 한다. 이를 해결하기 위해 쿠키나 세션을 사용하여 데이터를 처리한다. 2. HTTP와 HTTPS의 차이점 : HTTP는 평문 ..
Hot 🫙
-
Spring Boot - MVC 패턴과 Layered Architecture MVC 패턴이란, MVC란 Model, View, Controller의 약자로 애플리케이션을 3개의 역할로 구분한 개발 방법론이다. Model - 데이터베이스를 다루는 로직이다 - 데이터와 View를 분리한다 - View와 Controller에 관련된 코드를 작성하지 않는다 View - UI와 관련된 코드 - 화면에 출력되는 내용 - 사용자가 보는 페이지 - 클라이언트 html, css, javascript 관련 Controller - Model과 View를 중간에서 제어한다 - 사용자가 접근한 URL에 따라 요청사항을 파악한다 - 요청에 맞는 데이터를 Model에 의뢰한다 - 데이터를 View에 반영하여 사용자에게 전달한다 Spring에서 제공하는 Spring MVC의 주요 구성요소 또한 Model, ..
-
Web Crawling - Selenium으로 간단한 웹 크롤링 해보기 크롤링이란 웹 상에 존재하는 데이터를 프로그래밍으로 자동화하여 수집하는 행위를 말하며, 원하는 조건에 맞는 데이터를 수집하고 저장하기 위한 목적을 갖는다. 1. html 페이지를 가져와서 html/css 등을 파싱하고 필요한 데이터만 추출하는 기법 2. open api를 제공하는 서비스에 open api를 호출해서 받은 데이터 중 필요한 데이터만 추출하는 기법 3. selenium 등 브라우저를 프로그래밍으로 조작해서 필요한 데이터만 추출하는 기법 Web Crawling Library Jsoup 정적인 자료를 수집하는 경우에 주로 사용한다. 정적인 데이터를 비교적 빠르게 수집할 수 있지만 동적 데이터를 수집하는데 한계가 있다. Selenium 빅데이터 관련 또는 동적인 자료를 수집할 때 주로 사용한다. ..
-
< Clean Code > Clean Code: A Handbook of Agile Software Craftmanship by Robert C. Martin 2013. 12. 배운 내용으로 무작정 코드를 완성하던 중이었다. 비슷한 내용을 반복해서 타이핑하고 있는 나 스스로 '이게 맞나?' 싶은 의문점이 생겼고 클린 코드와 리팩터링에 대한 글을 읽게 되었다. 아! 저거다 나도 저렇게 하고 싶다! 하면서 구입한 책 중 하나가 로버트 C. 마틴의 〈 Clean Code 〉이다. 책의 1장 〈깨끗한 코드〉 9p에서 C++ 창사자 비야네 스트롭스트룹의 말을 인용한 문단이다. 나는 우아하고 효율적인 코드를 좋아한다. 논리가 간단해야 버그가 숨어들지 못한다. 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처..