일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 테코톡
- mysqld.sock
- 레벨로그
- 객체지향생활체조
- servlet프로젝트
- kotlin
- java
- jsp프로젝트
- 우아한테크코스
- 알고리즘
- subprocess에러
- DynamicWebProject
- 트랜잭션속성
- 자바비동기
- S2139
- tomcat설정
- 트랜잭션성질
- 스프링트랜잭션
- 코틀린뽀개기
- 무중단배포
- KotlinInAction
- 코틀린
- ObjectCalisthenics
- GithubOAuth
- 코틀린기초
- Google Place Photo API
- 트랜잭션
- 리버스프록시
- 데이터베이스락
- 백준
- Today
- Total
목록분류 전체보기 (80)
초이로그

프로젝트 조건 웹 페이지 입력폼에 URL 입력 시 단축된 결과 출력 브라우저의 주소창에 단축 URL 입력 시 기존 URL로 리다이렉트 같은 URL 입력 시 동일한 결과값 도출 결과값은 주소를 제외하고 8글자 이내로 생성 사용한 기술 Spring Boot, Thymeleaf, MySQL 시작하기에 앞서 고민 1) DB를 사용해야하는 이유 url shortener의 원리라고 하면, 원본 URL과 키값을 전단사함수를 통해 일대일 대응하는 것이다. 근데 문득 어짜피 같은 함수로 적용하는데 왜 굳이 키 값을 생성해서 대응...? 하는 생각이 문득 들어서 검색해보았다. 결론적으로 원본 URL보다 더 길어질수 있기 때문이다. 조금만 생각해보면 엄청나게 긴 문자열을 압축해야하는 것인데 단순한 일련번호를 인코딩하는 것이..

1. WebClient를 사용 배경 1) 프로젝트에서의 문제점 프로젝트를 진행하던 중, 하나의 클라이언트 요청에 대해 여러 번의 외부 API를 호출(최대 16번....)해야하는 상황이 생겼다. RestTemplate을 사용하여 모든 외부 API를 동기적으로 호출하다보니 평균적으로 5초이상 걸렸으며 10초가 넘는 경우도 발생하였다. 2) 해결하기 위한 시행착오 처음에 생각한 방식은 병렬처리 방식이다. 각각의 음식점에 대해 url, 이미지, 카테고리를 각각 외부 API를 호출하여 가져오고 있으므로 음식점으로 스트림을 생성하여 3개의 작업(외부 API를 호출하는 작업)을 병렬적으로 처리하면 된다고 생각했다. 결과는 시간이 매우 단축되고 아주 좋았다! .....로컬에서만 말이다^^ㅠ 로컬에서 개발하던 나의 PC..

이전의 숨바꼭질 시리즈와는 다르게 시간에 따라 동생의 위치가 바뀐다. == 이전에 방문했던 좌표를 재방문할 수 있다. (최소시간을 위해) == BFS로만 돌리면 메모리 초과를 맛볼 수 있다. 역시 골드1의 문제... 약간의 아이디어가 필요했다. 헤이 구글 1. 재방문의 경우, 최소 2초가 걸린다. 2. 수빈이가 각 좌표에 도달하는 최초 시간을 구한다. 즉, 각 좌표에 도달하는 최소 시간을 구한다면, 해당 좌표는 언제나 2n초 안에 돌아올 수 있다. 2n초 안에 재방문 가능하다는 것은, 최초 시간이 홀수라면 언제나 홀수 시간에, 최초 시간이 짝수라면 언제나 짝수 시간에 방문 가능하다는 것이다. 따라서 짝수로 최초 도달하는 시간, 홀수로 최초 도달하는 시간을 구분해야한다. int[][] vis = new i..

이정도 난이도의 구현문제가 그렇듯 "오? bfs/dfs 써서 구현만 딱하면 될거 같은데?" 하고 덤비면 점점 꼬이는 문제.. 7달전의 나처럼.. 게임이 진행되는 것과 같이 차근차근 케이스를 나누고 적절한 알고리즘을 대입하면 쉽게 해결할 수 있다. 1. 궁수를 배치한다. -> M개의 자리중 3개를 선택하는 문제이므로 재귀를 사용하여 조합을 구현 private static void combination(int cnt, int st) { if (cnt == 3) { // 궁수 3명 자리 고르기 완료! 조합 완성! } else { for (int i = st; i < M; i++) { archers[cnt] = i; combination(cnt + 1, i + 1); } } } 2. 완성된 조합에서, 몇명의 적..

최단 거리를 구해야하므로 BFS 문제이다. 처음에는 큐마다 방문 배열을 함께 넣어서 풀었었다. static class Point { int x; int y; boolean wall; int[][] vis; public Point(int x, int y, boolean wall, int[][] vis) { this.x = x; this.y = y; this.wall = wall; this.vis = vis; } } // ... private static int bfs() { // ... Queue queue = new LinkedList(); // ... } 하지만 N*M 최대가 1000 * 1000이다보니 배열을 계속 생성해서 메모리 초과가 난다. 그리고 처음에 메모리 초과가나는 이유가 궁금해서 찾다가 ..

루시와 엘라 찾기(Level.2) 문제 / 풀이 WHERE 절에서 IN() 연산자를 사용하면 콤마(,)로 구분된 값들중 하나 이상과 일치하는 경우 맞다고 판단한다. 이를 활용하여 루시나 엘라 이름을 검색하는 조건을 추가하하였다. 이름에 el이 들어가는 동물 찾기(Level.2) 문제 / 풀이 LIKE의 와일드 카드인 %를 사용하여 '%el%'로 이름 탐색 조건을 추가하여 조회하였다. 조회결과 4개가 나오던데 할머니는 기르던 개를 찾으셨을까,,,? 중성화 여부 파악하기(Level.2) 문제 / 풀이 CASE문을 사용하여 풀이하였다. 다음은 CASE문 사용 방법 CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionN THE..