목록분류 전체보기 (255)
-
지난 시간엔 비밀번호를 DB에 넣을 때 그대로 넣으면 문제가 생길 수 있기 때문에 암호화해서 DB에 넣는 작업을 해보겠습니다. 우선AuthService로 이동합니다. 이후 회원가입 메서드 위에 @Transactional을 달아줍니다. 이것을 걸면 함수가 실행되고 종료될 때까지 트랜잭션 관리를 스프링부트가 지원합니다. 보통은 이 트랜잭션을 Write할 때 사용하는데 우리는 Insert, Update, Delete할 때 사용하겠습니다. 왜냐하면 정보처리기사 관련 자격증을 공부해보신 분들이나 제 블로그에 있는 운영체제 포스팅을 읽으신 분은 이해하시겠지만 데이터를 Write할 때에는 그 어떤 사용자도 간섭해서는 안됩니다. 스프링부트에서는 다른 사용자가 접근하여 DB를 수정할 수 있기 때문에 @Transactio..
# 주소 https://www.acmicpc.net/problem/22864 22864번: 피로도 첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다. www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.*; class Main{ static int a,b,c,d; static int max = Integer.MIN_VALUE; public static void main(String[] args) { Scanner scan = new Scanner(System.in); a = scan.nextInt(); b = scan.nextInt(); c = scan.nextInt(); d = scan.nextI..
이번에 해볼 것은 이전에 만든 SingupDto의 변수 4가지를 User라는 모델에 담을 것입니다. 이전에 살펴봤든 User라는 모델은 이렇게 많은 변수를 가지고 있었고 SignupDto에는 고작 4가지의 변수만 가지고 있기 때문에 이것들을 다 담으려면 DTO를 이용해서 함수를 하나 만드는 것이 가장 좋습니다. 그러므로 제일 먼저 User클래스에서 @Builder라는 어노테이션을 붙힙니다. 그리고 SignupDto로 이동해서 이렇게 입력합니다. 이 @Builder 어노테이션은 쉽게 말해 클래스에게 빌더 패턴을 적용시켜서 정적 메서드로 구현되는 빌더객체를 생성시켜줍니다. 따라서 우리가 User의 toEntity()메서드를 만들 때 이 @Builder만 User에게 붙혀주어도 여기서 파생되는 여러가지 메서드..
# 주소 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Main{ static int n,m; static int[][] arr; static int zeroCount = 0; static List list; static int min; static..
로그인 인풋입니다. 우리는 회원가입할 때 아주 간단히, username, password, email, name 이렇게 4가지 요소만 받아서 사용자 모델을 만들어 볼 것입니다. 우선 저는 web 패키지 내부에 dto.auth라는 패키지를 또 따로 생성하여 SignupDto라는 클래스를 만들었습니다. DTO는 Data Transform Object의 약자로서 통신할 때 필요한 데이터를 담아두는 오브젝트입니다. 여기에 우리는 4가지의 데이터를 담아야겠죠? (username, pw, email, name) 그래서 적어봅시다. 이렇게 적는데, Dto클래스는 위에 @Data라는 어노테이션을 걸면 좋습니다. 저걸 걸게되면 따로 Getter, Setter를 오버라이딩 안해도 되기 때문에 (롬복 라이브러리에 의해) 상..
스프링부트는 시큐리티 기능을 제공하고 있습니다. 사용자가 로그인을 하고 사이트를 들어가려고 할 때 허가 없이 사이트의 정보를 얻으면 안되겠죠? 스프링부트에서는 이 기능을 제공함으로써 허가된 사용자에게 권한을 줄 수 있습니다. 일단 시큐리티 세팅을 해보도록 하겠습니다. 저는 css, html파일은 인스타그램 클론 코딩의 프론트단을 받아서 사용하고 있어서 따로 프론트 쪽 설명은 하지 않습니다. 이렇게 생겼습니다. 근데 중요한건 localhost:8080만 입력해도 8080/login으로 변경이 됩니다. 왜냐하면 pom.xml보면 시큐리티 라이브러리가 이렇게 등록이 되어 있습니다. 이 라이브러리가 어떤 역할을 하냐면, 클라이언트가 우리 서버에 들어오려고 하면 인증되지 않은 모든 사용자를 로그인창으로 Redir..