Web MVCWebMvcConfigurer 자체는 인터페이스이기 때문에 기본 구현이 없습니다. 즉, 개발자가 필요한 메서드를 오버라이드하여 원하는 기능을 추가하거나 수정해야 합니다.다만, Spring Boot는 기본적으로 WebMvcConfigurer를 사용하지 않아도 대부분의 Web MVC 관련 설정을 자동으로 구성해줍니다. 이러한 Spring Boot의 기본 설정 덕분에 WebMvcConfigurer는 필요한 경우에만 사용하면 됩니다.Spring Boot의 디폴트 기능 (자동 설정)Spring Boot는 다음과 같은 Web MVC 관련 기능을 기본적으로 제공합니다:정적 리소스 처리classpath:/static/, classpath:/public/, classpath:/resources/, /META..
Arrays.sort primitive 배열은 Comparator 안됨
Oauth2.0 클라이언트 의존성 설정 외부 서비스(API 제공자)와 상호작용하여 사용자 인증 및 권한 부여를 요청하는 애플리케이션주로 사용자 대신 리소스 소유자(Resource Owner)의 인증 토큰을 받아, 외부 API나 리소스 서버에 접근하는 데 사용 OAuth 클라이언트의 역할사용자 인증 요청 사용자를 대신하여 인증 서버(Authorization Server)로 인증 요청을 전송합니다.액세스 토큰 수신 인증이 완료되면 인증 서버에서 발급한 액세스 토큰을 받아옵니다.외부 API 호출 액세스 토큰을 사용해 리소스 서버(Resource Server)에서 데이터를 가져오거나 작업을 수행합니다.사용자 정보 제공 토큰을 기반으로 인증된 사용자 정보를 가져오거나 서비스에 연결합니다.OAuth 클라이언트를 ..
gradle 버전업에 따라 deprecated된 설정들이 있어 개선해보기 개선 및 확인 사항Deprecated API 사용compile과 testCompile은 Gradle 5.0부터 deprecated되었으며, implementation과 testImplementation을 사용compile은 다른 모듈에 노출된다. 나중에 모듈을 분리할 때 다른 모듈의 의존성을 사용에서 오는 문제가 발생 가능함 Impliementation은 다른 모듈에 노출되지 않음 jcenter는 더 이상 지원하지 않음apply plugin 대신 plugins 블럭 권장apply plugin 대신 plugins 사용현대 Gradle DSL에서는 apply plugin보다는 plugins 블록을 사용하는 것이 권장 AS-ISbuil..
요약 다음 3가지 기능에 따라 최종 시간을 구하기10초 전 이동: prev 명령어 10초 후 이동: next 명령어오프닝 건너뛰기: 현재 위치가 오프닝 구간이면 오프닝 마지막 시간대로 이동 1차에 틀린 이유, 기능 로직 순서prev, next 로직 이후에 오프닝 구간인지 검사했다. 하지만 시작 시간을 포함해서 오프닝 구간인지 검사했어야 했다. 문제(요구사항)를 꼼꼼히 읽어보고 기능의 서로 영향에 대해 고민해야 하는 걸 간접적으로 느낀 문제였다.3가지 기능의 순서에 깊이 생각안하고 각 기능 구현만 보고 구현함 각 기능이 독립적이다 아니다 뿐만 아니라 순서가 존재함package simulation;/* 테케가 아니었으면 틀렸을 문제 예제에서 틀려서 로직 순서의 이상확인 시뮬레이션 -> 로직 ..
프로젝트에서 동시성 이슈를 다루면서 Transactional Serializable이 안되는지 이해가 되지 않았다.isolation level이 가장 높기 때문에 당연히 동시성 이슈가 해결될 것이라 생각했다.하지만 비관적락에서만 동시성 이슈가 발생하지 않았다.그래서 구체적인 동작방식을 이해하고자 정리했다.프로젝트 동시성 이슈 발생상황예약 프로젝트이 특성 사 예약 요청 트래픽이 몰리는 상황을 테스트100개의 스레드로 동시에 예약 요청하여 데이터를 생성int threadCount = 100;ExecutorService executorService = Executors.newFixedThreadPool(32);List list = new ArrayList();for (int i = 1; i list1 = n..
mysql 에서도 I/O 연산을 줄이기 위한 Buffer Pool을 이용해 속도차이를 개선했다는 것이 신기하다.Redis 도 in-memory 기반의 cache 서버로 DB 부하를 줄일다는 것이 기억났다.기술발전에 따라 다양한 방법으로 속도 개선이 이루어지는 것을 알 수 있다. 또한 생각해볼 점은 Buffer Pool 이 메모리를 사용한다는 점이다. 만약 Buffer Pool보다 큰 작업을 수행하게 되면 이점없이 I/O 작업이 늘어나게 될 것이다. Buffer Pool 사이즈를 변경하거나, 쿼리문, index 또는 unique 작업 등을 수정해봐야 겠다는 생각이 들었다. MySQL크게 MySQL 엔진과 Storage 엔진으로 구분MySQL 엔진요청 쿼리에 대해 어떻게 실행할지 결정하는 역할InnoDB특..
Blocking vs Non-Blocking다른 주체가 작업할 자신의 제어권이 있는지 없는지로 볼 수 있다. Blocking다른 작업(함수) 호출 후 처리가 완료될 때까지 대기 후 자신의 작업 수행Non-Blocking다른 작업(함수) 호출 후 응답을 기다리지 않고 자신의 작업 수행필요에 따라 호출한 함수의 리턴값을 처리하는 콜백함수 존재Synchronous vs Asynchronous결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단 Synchronous, 동기작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함을 의미작업 완료를 user space에서 판단하고 다음 작업을 언제 요청할지 결정하게 됩니다.모든 I/O 요청-응답 작업이 일련의 순서를 따릅니다. 즉, 작업의 순서가..
- Total
- Today
- Yesterday
- 자바
- 티스토리챌린지
- 프로그래머스
- 투포인터
- 문자열을 정수로 바꾸기
- programmers
- 17825
- 후보키
- 가장 큰 정사각형 찾기
- 오블완
- 카카오 2020 공채
- 백준
- java
- 정수 내림차순으로 배치하기
- 3954
- 카카오2020 공채
- 17779
- 주사위 윷놀이
- 124 나라의 숫자
- 라면공장
- 찾아라 프로그래밍 마에스터
- 2018 카카오 공채
- 게리맨더링 2
- 큰 수 만들기
- 2019 카카오 공채
- DP
- 괄호 변환
- 짝지어 제거하기
- 단체사진 찍기
- Brainf**k 인터프리터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |