분류 전체보기 62

스프링부트 시큐리티 4강 - 시큐리티 로그인(다시 공부 해야함)

package springSecurity.demo.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Configuration // IoC 빈(bean)을 등록 ..

스프링부트 시큐리티 3강 - 시큐리티 회원가입

package springSecurity.demo.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; @Configuration // IoC 빈(bean)을 등록 ..

스프링부트 게시판 API 서버 만들기 (1) - 프로젝트 생성

스프링부트 설정 yml 설정 resources 디렉토리에 있는 application.properties 설정 파일을, 가독성을 위해 application.yml 파일로 바꿔준다. build.gradle 설정 추가 다음을 추가하여 SQL 로그를 좀 더 보기 쉽도록 남기도록 한다. //p6spy 적용 implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.7.1' 실행 잘 실행이 된다! 출처: https://ttl-blog.tistory.com/266?category=910686 스프링부트 게시판 API 만들기 (1) - 프로젝트 생성 제가 만들 게시판은 "에브리타임"과 같은 일반적인 게시판입니다. 질문을 올릴 수도, 정보공유를 할 수도, ..

검증2 - Validation

1. Bean Validaion - 소개 Bean Validation 이란 검증 애노테이션과 여러 인터페이스의 모음이다. 2. Bean Validation - 시작 implementation 'org.springframework.boot:spring-boot-starter-validation' 를 build.gradle에 추가해야한다. import lombok.Data; import org.hibernate.validator.constraints.Range; import javax.validation.constraints.Max; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @Data p..

검증1 - Validation

검증 타입, 필드 등 오류가 발생할 시 수행하는 로직을 뜻한다. 1. 검증 직접 처리 Map errors = new HashMap(); 을 사용하여 어떤 검증에서 오류가 발생했는지 정보를 담는다. 문제점: 만약 문자타입으로 입력이 들어오면 오류가 발생한다. 오류 발생시 입력 내용이 사라짐 2. BindingResult BindingResult 파라미터의 위치는 @ModelAttribute Item item 다음에 와야 한다. 필드에 오류가 발생하면 FieldError를 사용하고 글로벌 오류가 발생하면 ObjectError을 사용한다. FieldError , ObjectError 생성자 소개 objectName : @ModelAttribute 이름 field : 오류가 발생한 field 이름 default..

최소힙, 최대힙

최소힙 코드 heapq 라이브러리를 사용한다. import heapq as hq a = [] while True: n = int(input()) if n == -1: break if n == 0: if len(a) == 0: print(-1) else: print(hq.heappop(a)) else: hq.heappush(a,n) #a리스트에다가 n을 푸쉬해라 최대힙 코드 import heapq as hq a = [] while True: n = int(input()) if n == -1: break if n == 0: if len(a) == 0: print(-1) else: print(-hq.heappop(a)) else: hq.heappush(a,-n) #a리스트에다가 -n을 푸쉬해라 # 기본적으로 ..

이분탐색

시간복잡도는 O(logN)이다. => 단계마다 탐색 범위를 반으로 나누기 때문에 출처: https://velog.io/@kimdukbae/%EC%9D%B4%EB%B6%84-%ED%83%90%EC%83%89-%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89-Binary-Search [알고리즘] 이분 탐색 / 이진 탐색 (Binary Search) 이진 탐색(이분 탐색) 알고리즘은 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다.이진 탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 velog.io

파이썬 기초 문법(선수지식)

강의중 모르는 개념들만 정리하였습니다. 출처 https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8/dashboard 파이썬 알고리즘 문제풀이 입문 (코딩테스트 대비) - 인프런 | 강의 파이썬(Python)을 이용해 코딩 테스트 문제 풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com

메시지, 국제화

1. 메시지 만약 변수명을 바꿔 달라는 요청이 온다면 어떻게 해야할까?? 해당하는 변수명을 다 찾아가면서 모두 변경하기에는 어려움이 있다. 그래서 메시지를 사용해야한다. 메시지는 다양한 메시지를 한 곳에서 관리하도록 하는 기능이다. 1.1 스프링 메시지 소스 설정 스프링 부트를 사용하면 스프링 부트가 MessageSource를 자동으로 스프링 빈으로 등록한다. spring.messages.basename=messages 이것을 스프링 빈에 등록하면 메시지 소스가 적용된다. 사용법: messages_en.properties, messages_ko.properties 등등 이렇게 등록하면 자동으로 인식한다. 1.2 스프링 메시지 소스 사용 이런식으로 사용하면 된다. code = 변수명 args = 파라메터 ..