전체 글

· 알고리즘
https://www.acmicpc.net/status?user_id=wjdwlgh2000&problem_id=13397&from_mine=1항상 느끼는 거지만, 분할 정복, 매개변수 탐색 같이 인덱스를 다루는 놈들이 가장 어렵다. 매개변수 탐색은 조금더? 라는 생각으로 start나 end 둘중 하나를 mid+1을 넣어가면서 탐색해야한다.마지막에는 그냥 mid였던 놈을 반환한다.start = mid+1이었다면 end를 반환해주면 된다.문제 이해는 쉬웠지만, 항상 구현에서 막힌다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;publ..
스프링에서 빈 컨텍스트를 생성하는 과정%%필자의 친구 이름이 빈이다. TMI다 넘어가자. 1. 리플렉션을 통해 BeanDefinition 생성2. BeanDefinition을 @Autowired, 생성자 기반 등의 정보로 "빈 그래프" 형성**빈 그래프: 빈들은 객체 지향을 토대로 협력, 의존 관계가 형성되어 있다. 이때, 이 의존 관계를 그래프처럼 나타낸 것이 빈 그래프이다.2.1. @PostConstructor와 같은 어노테이션이 붙은 메서드들을 실행해 빈 정의를 생성하고, 빈 그래프에 추가한다.3. 빈 그래프가 완성이 되었고, 모든 빈들이 생성되었을 때(싱글톤 생명주기) 빈을 생성함과 동시에 빈 컨텍스트(==애플리케이션 컨텍스트, IoC 컨테이너)를 만든다.**사실, 빈 그래프 == 빈 컨텍스트라고..
· 알고리즘
https://www.acmicpc.net/problem/14500 이 문제에서 깨달은 점은 DFS는 일직선으로 밖에 탐색을 못한다이다. 때문에, 예외가 적다면 예외를 처리하는 것을 두자.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int[] dy = {1,0,-1,0}; static int[] dx = {0,1,0,-1}; static int N, M; static int[][] map; static boolean[][] visited; static ..
· 알고리즘
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; static int[] arr; static StringTokenizer stringTokenizer; static BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws IOException { initiali..
1. 클라이언트1-1. RESTful API 설계1-2. Swagger 2. 백엔드 서버2-1. 자바 프로그램2-1-1. 스프링 구조2-1-2. 자료 구조2-1-3. 자바 최적화2-1-4. 비동기 프로그래밍2-1-4. 스프링 시큐리티2-1-5. OAUTH2.0 2-2. 데이터베이스 접근 기술2-2-1. JPA2-2-1-1. hibernate2-2-1-2. QueryDSL2-2-2. MyBatis 3. 데이터베이스(RDBMS)3-1. 트랜잭션(ACID) & 동시성 제어(락, 격리 수준)3-2. 쿼리 최적화3-2-1. 쿼리 실행 계획 분석(인덱스 설계 등)3-2-2. 스키마 설계(정규화 반정규화)3-2-3. 성능 분석3-3. 백업3-4. 복구(회복)3-5. 트러블 슈팅(잡지식) 4. CS4-1. OS4-2...
· 알고리즘
https://www.acmicpc.net/problem/2138그리디 문제는 항상 어렵다. 이번 그리디 문제는 초기 조건을 주고 생각하는 문제였다. 초기 조건을 불을 키고 시작하기불을 안키고 시작하기두 개로 나뉘어 그리디로 쭉쭉 불을 키고 끄면 되는 문제였다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { static int N; static int[][] temp; static int[] will; static BufferedReader bufferedReader = new BufferedReader(new InputStreamRea..
오늘은 서초 사랑의 교회에 갔다.이사야 40장 1~31절늘은 서초 사랑의 교회에 갔다. 이사야 40장 1~31절하나님의 위로 자체가 진정한 위로가 된다. 시편 23장 4절내가 사망의 음침한 골짜기로 다닐지라도 해를 두려워하지 않을 것은 주께서 나와 함께 하심이라 주의 지팡이와 막대기가 나를 안위하시나이다.이렇듯 성경에서는 많은 위로를 건낸다. 성경에서 말하는 위로란?구약에서 히브리어로 나훔이라는 단어는 위로를 뜻한다.성령님과 위로의 관계가 어쩌고 했지만,,, 졸아서 못들었다 나중에 한 번 찾아봐야겠다. 이사야에 기록된 내용 중 예수님을 위로자로 표현한다.마태복음 28장 20절볼찌어다, 내가 세상 끝 날까지 너희와 항상 함께 있으리라예수님께서는 위로를 해주신다. 이사야 40장 31절오직 여호와를 앙망하는 ..
· MySQL
학습목표 : 실행 계획을 분석해보고 SQL 작성 방법 및 쿼리 최적화 방법을 익힌다. 1번쿼리SELECT s.emp_no, COUNT(DISTINCT e.first_name) AS cntFROM salaries s INNER JOIN employees e ON e.emp_no=s.emp_noWHERE s.emp_no IN (100001, 100002)GROUP BY s.emp_no HAVING AVG(s.salary) > 1000ORDER BY AVG(s.salary) LIMIT 10; ++ salaries의 PK는 emp_no이고, employees의 PK도 emp_no이다.=> 스트리밍 방식으로 처리한다.=> 그룹화를 평균 salary가 1000 초과인 것들만 한다.=> salary로 정렬한다.=> ..
쥐4
결국 이기는 개발자