java ↔ JDBC API ↔ DB 문제점1. 많은 양의 코드2. 개발자들간에 코드 일관성 확보3. connection pull issue4. java code 내에 sql문이 있음 -> 가독성 문제, string builder을 사용해야함 그래서! Java ↔ 편한 API ↔ JDBC ↔ DB편한 API가 껴들게 되는데, 그게 2가지가 있음Mybatis, JPA (이걸 구현한게 Hibernate) 차이점Mybatis는 java와 sql을 mapping해주는 역할JPA 는 ORM 기술 그 잡채이다.일단 오늘은 MyBatis부터.MyBatis를 위해서 이클립스에서 프로젝트를 만드는데, 여기서부터는 java project가 아니라, Maven project를 만든다. Build tool인 Maven j..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.com URECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 SpringBoot(1~14강)까지 완강후 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다.1. 스프링부트의 동작 구조 통신은 클라이언트의 요청을 받아서 내부에서 요청을..
SELECT 문법SELECT [*, distinct, 컬럼명들 + as 속성이름 변경]FROM [테이블명]WHERE [조건] [and / or] [조건] / [속성] (not)in (원하는 값) / [속성] (!)= (원하는 값) / like-- 여기까지 select 확정, 그 후로는 추가 조건-- 조건의 전체 또는 group by로 묶어서 처리GROUP BY [속성] -- 속성에 따라서 select값을 나눔HAVING [검색 조건]ORDER BY 테이블명 [asc / desc] -- 오름차순 내림차순크게 보면 이런식이다. 쿼리를 작성할 때 기본적으로 사용할 수 있는 함수가 있다.sum(), avg(), count(), max(), min()select sum(saleprice) as 총매출 from ..
그래프는 다양하게 있지만, 여기선 신장트리, 그 중에서도 MST (최소신장트리)에 대해 작성해보려고 한다. 신장트리 spanning tree: 그래프의 변형 트리는 부모 자식간의 관계, 그에 따른 차수, 높이가 있다. ex) 이진트리 여러 트리중에 신장트리란 각각의 정점들이 모두 연결된 트리 이다. 신장트리의 조건 (ST, spanning tree)(얘는 트리이므로)가중치는 있을 수 있지만, 무향(방향X)이다.cycleX () 그중에 최소신장트리(MST, minimum spanning tree)는 각각의 정점들이 최소비용으로 모두 연결되는 트리 이다. MST 구현방법쿠르스칼 - 간선중심프림 - 정점 중심(간선이 많을 때 사용)MST - 쿠르스칼: 간선 기반 알고리즘으로 간선을 비용순으로 정렬하여 최소비..
최단경로가장 짧은 경로, 길찾기 최단경로 유형은 "한 지점에서 다른 지점까지의 최단경로", "모든 지점에서 다른 모든 지점까지의 최단경로" 등으로 나눠볼 수 있다. 이러한 유형은다익스트라 알고리즘플로이드워셜 알고리즘그래프 알고리즘(BFS)greedy & DP 알고리즘벨만 포드 알고리즘등 정말 다양한 알고리즘으로 풀이할 수 있다. 다만 지금까지의 경험으로는 최단경로 문제는 왠만하면? 1~3번으로 거의 다 해결이 되는 느낌이었다.최단경로에는 가중치가 있는데 비용(cost), 거리(distance), 무게(weight) 이런식으로 있을 수 있다. 다익스트라현재 정점에서 다른 특정 정점가중치가 있는 경우O(NlogN) 플로이드워셜모든 정점에서 모든정점가중치가 있는 경우O(N^3) (ex) 사다리타기..?)..
1줄 요약URECA 과정 시작, 또 같은 실수?를 반복한다.1주차URECA 최종합격결과를 받고 짧게나마 Java 공부를 시작했다.(정말 짧게..) 그리고 URECA OT에 참석하기 위해 마곡에 갔는데 와우.. 생각보다 해당 과정을 신경썼다는 느낌이 들었다. 살짝 과장 보태서 LG판 싸피느낌? 2주차본격적으로 URECA과정을 시작했다. 나는 백엔드 비대면으로 신청해서 집에서 Zoom을 이용하여 수업에 참여한다. 과정을 시작한지 3주가 지난 지금까지는 비대면을 선택하길 잘한거 같다. 내 거지같은 체력으로 아침저녁으로 강남까지 출퇴근을 했다면, 12월 말까지 버티지 못했을 것 같다. 수강정정기간이라 그런지 3주차까지 사람들이 많이 나가고, 나간만큼 들어왔다.(살짝은 어수선한 느낌) 3주차수업은 기본적으로 약 ..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.comURECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 Spring과 JPA(1~7강)까지 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다. JPA : Entity 생명주기 관리영속성 컨텍스트를 통해 데이터 영구저장: 데이터를 ..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.comURECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 Spring과 JPA(1~7강)까지 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다. JPA를 통해 Java로 데이터를 모델링 할 수 있음 ORM : 자바 필드 → DB 테..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.comURECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 Spring과 JPA(1~7강)까지 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다. JPA : 자바를 통해 DB를 관리하기 위한 기술JPA = interfaceJPA(Ja..
정렬1. 선택 정렬: 가장 작은 데이터를 찾아서 순차적으로 앞쪽에 쌓는다선택 정렬의 특징첫번째 요소부터 나머지 요소들 중 가장 작은 요소와 자리를 교환한다.이 과정에서 앞에서부터 자동으로 정렬되게 된다.ex) 1회 : 9-1-7-5 -> 1-9-7-52회 : 1-9-7-5 -> 1-5-7-9// 선택 정렬 메소드 public static void selectionSort(int[] arr) { int n = arr.length; // 배열의 모든 요소를 순차적으로 탐색 for (int i = 0; i 선택 정렬의 시간 복잡도최악의 경우: O(n^2) 최선의 경우: O(n^2)평균: O(n^2) just 최악선택 정렬의 공간 복잡도O(1) (상수 공..