회사 인턴을 진행하면서 equals와 equalsIgnoreCase, == 을 혼용하여 사용하였는 데사수님께서 각각 차이점이 무엇인지 알고사용하는 것이 좋을 거 같다고 하셔서 쓰게 된 포스팅입니다. 자바의 데이터 타입먼저 자바의 데이터 타입입니다.자바에서는 크게 데이터 타입이 원시타입(primitive type) 과 참조타입(reference type)으로 나뉘어집니다.원시타입 (primitive type)정수, 실수, 문자 논리 리터럴 등의 실제 데이터 값을 저장하는 타입으로 아래 항목들이 해당됩니다.int, long, double, float, boolean, byte, short, char참조타입 (reference type)객체(Object),를 참조(주소 저장) 하는 타입으로 메모리 번지 값을..
method filterchain in "디렉터리 경로(webconfig)" required a bean of type "디렉터리 경로" that could not be found. 이라는 에러가 떴다. 이유가 뭔지 찾아봤을 땐 라이브러리의 충돌인 줄 알았지만 ,,, application.yml의 문제였다 !! 평소 properties 설정파일을 사용했기에 yml에서의 문제일 줄은 몰랐다 .. ㅠ.ㅠ 수정전 yml 파일 이전엔 이렇게 security만 따로 있었는 데 이게 아니라 spring안에 security가 존재해야 했다.!!! 수정된 yml 파일 spring: security: oauth2: client: registration: kakao: client-id: client-secret: auth..
커넥션 풀의 이해 데이터베이스 커넥션을 획득할 때는 다음과 같은 복잡한 과정을 거친다. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 물론 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다. DB는 커넥션 생성이 완료되었다는 응답을 보낸다. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 커넥션 풀 이런 문제를 한번에 해결하는 아이디어가 바로 커넥션을 미리 생성해두고 사용하는 커넥션 풀이라는 방법이 다...
알고리즘 분류는 구현, 자료구조, 큐이다. 문제 1부터 N까지의 카드에 대해서 한장은 버리고, 그 다음장은 맨 아래로 옮기는 것이 카드가 1장이 남을때까지 반복 된다. 1부터 4까지 있을 때 1 2 3 4 -> 1은 버리고 2는 아래로 옮기면서 3 4 2 -> 3은 버리고 4는 아래로 옮기면서 2 4 -> 2를 버리면 카드가 4 한장이 남기 때문에 버린 순서대로 -> 1 3 2 4 가 정답이 되게 된다. 버린 카드: 1 3 2 마지막 카드: 4 풀이 큐를 이용하여 간단하게 문제를 풀어보았다. 1~N까지의 수를 큐에 넣고, 큐에 첫장은 빼서 바로 출력하고, 그 다음장은 빼자마자 큐에 다시 넣는 작업을 큐의 사이즈가 1보다 클때까지만 while문을 이용하여 반복하였다. 그 후엔 마지막 장을 출력해주면 된다...
전공공부에 매진하다보니 백준을 푼지 오래된 것 같아서 차근차근 다시 풀어보려고 한다. https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 위 문제는 입력이 없을 때 까지 반복처리를 해야하기 때문에 while문을 이용하여 eof 처리를 진행하였다. 백준의 경우에는 입력 자체가 파일로 처리되기 때문에 아래 코드로 정상처리가 되지만 Intellij는 IDE에서의 입력이기 때문에 끝을 찾지 못해서 따로 control+D 를 이용한 종료를 해야한다. while..
백준 10026번 적록색약 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 알고리즘분류 그래프 이론 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 2차원 배열 델타 사용 2차원 배열을 델타를 이용하여 풀었다. 한 지점을 8방향으로 탐색할 때 좌표값의 계산은 위 사진과 같다. y값이 증가할 수록 아래로 이동한다. 적록색약 문제는 4방향 탐색이기 때문에 x, y = {-1, 0}, {1, 0}, {0, -1}, {0, 1} 상하좌우 좌표값만을..
백준 1260번 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS(깊이 우선 탐색)란? DFS(깊이 우선 탐색, Depth-First Search)란 그래프의 가장 깊은 곳부터 탐색하는 것으로 자기 자신을 호출하는 순환 알고리즘에 형태를 가지고 있다. 주로 스택(Stack)으로 구현되며, 아래코드도 스택을 이용하여 구현되었다. BFS(너비 우선 탐색)란? BFS(너비우선 탐색, Brea..
StringTokenizer란 ? 공백 및 지정한 구분자로 문자열을 분리 해주는 클래스를 말한다. 구분자로 문자열을 분리하면서 더 이상 나눌 수 없는 요소들을 Token이라고 한다. 010-1234-5678 여기에서 - 는 구분자를 의미하고, 010, 1234, 5678은 Token(토큰)을 의미한다. 생성자(Constructor) 생성자 설명 StringTokenizer(String str) 기본 delim인 공백문자로(\t, \n, \r, \f) 분리한다. StringTokenizer(String str, String delim) 지정해준 delim으로 문자열을 분리한다. StringTokenizer(String str, String delim, boolean returnDelims) 지정해준 del..