본문 바로가기

분류 전체보기151

백준 1541 잃어버린 괄호 c++ Key point -가 앞에나왔을 때는 뒤를 전부 묶을 수 있으니까 뒤에 나온값들을 그냥 다 빼주면된다. 까다로웠던 점 아직 시작단계라 그런가 문자열 처리가 힘들었다. 55-50을 딱 보는순간 입력구분 어떻게하지라는 생각이 들었고 생각해보니 그냥 string쓰면 해결됨.. stoi()도 낯설었다. 문자열처리에 대해 학습이 필요할 것 같다. 2022. 1. 26.
[백준] 1931 회의실 배정 c++ 문제 링크 https://www.acmicpc.net/problem/1931 KEY 대표적인 그리디 유형의 문제로, 구현이 어렵지는 않았다. 회의가 일찍 끝나는 순으로 정렬하고, 만약 끝나는 시간이 같은 경우 먼저 시작하는 순으로 정렬해야 한다. sort함수의 boolean 인자를 새롭게 만들어서 sort함수를 재정의했다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include #include #include #include #include using namespace std; int N; int answer; vector v; bool compare(pair.. 2022. 1. 26.
[회원가입] 회원가입 구현 ※ 사전에 User모델링을 마친 상태이다. jsp파일에 구현한 form태그에서 POST방식으로 요청할것이다. AuthController.java파일에서 다음과같이 PostMapping해주고 SignupDto를 사전에 만들어준다. DTO(Data Transfer Object)란 전송받을 데이터가 많은경우 이를 처리하기 위해 만든 클래스를 말하는데, 그 내부는 다음과 같다. 내부에 toEntity함수를 만들어서 받은 데이터로 user객체를 빌드하여 리턴하도록 했다. 그리고 회원가입 진행! Service단에서는 실제 회원가입 로직이 쓰여진다. 만들어진 user객체를 비밀번호를 암호화 한 후에 UserRepository에 저장한다. 근데 실제 회원가입을 진행하면 아이디가 20자가 넘으면 안되고, 같은 usern.. 2022. 1. 17.
Spring Security의 로그인 절차 스프링 시큐리티는 커스터마이징이 가능한 인증 및 접근제어 프레임워크이다. 보안과 관련해서 체계적으로 많은 옵션을 제공하기 때문에 개발자 입장에서 일일이 보안에 관련된 로직을 작성하지 않아도 된다는 장점이 있다. 시큐리티가 form login을 어떻게 처리하는지에 대해서 프로젝트 내용과 함께 설명한다. 밑의 코드는 WebSecurityConfigurerAdapter를 상속받아 작성한 SecurityConfig 클래스(설정파일)이다. configure메서드에서는 csrf를 비활성화하고, antMatchers에 명시된 경로에 권한을 부여해서 해당 경로로 들어가게 되는 경우 로그인페이지로 이동하도록 했다. 시큐리티 설정파일에 .loginProcessingUrl("/auth/signin")라고 명시하면 /auth.. 2022. 1. 16.
@Builder를 써야하는 이유 필요한 데이터로 바로 객체를 만들 수 있다. 정적 메소드의 경우(생성자) 예를들어서 age라는 파라미터가 필요없는 상황이라고 가정했을 때 우리는 age가 없는 생성자를 따로 만들어줘야 한다. 하지만 Builder의 경우 이를 동적으로 처리 가능하다. 진행하는 프로젝트에서는 회원가입을 할 때 dto클래스 내부에 받은 정보만으로 User객체를 build하는 메서드를 아래와 같이 미리 만들어 놓았기 때문에, 실제로 controller에서 signupDto의 toEntity()메서드를 활용해서 바로 user를 DB에 저장할 수 있었다. @Data public class SignupDto { @Size(min=2,max=20) @NotBlank private String username; @NotBlank pri.. 2022. 1. 15.
[개념 정리] 스트링부트 기본 개념 @Controller : File을 응답하는 컨트롤러(클라이언트가 브라우저면 .html파일) @RestController : Data를 응답하는 컨트롤러(클라이언트가 핸드폰이면 data) 1. URL로 파라미터를 받는 방법 2가지 1. 쿼리스트링 2. 주소변수매핑 RESTful하게 파라미터를 받기 위해서 @PathVariable을 사용한다. 2. 요청데이터 타입에 따라 파라미터 형태가 달라진다. 스프링부트는 기본적으로 key=value 형태의 x-www-form-urlencoded 타입을 파싱해준다. 따라서 별도의 @RequestBody와 같은 어노테이션 없이 String으로 받을 수 있다. 하지만 text/plain이나 application/json형태의 데이터의 경우는 @RequestBody나 @Re.. 2022. 1. 15.