항해99

· Study/WIL
들어가며 제대로 쉬지도 그렇다고 열심히 무언가를 하지도 않았던 지난 한주. 변명만 잔뜩 늘어놓고 TIL에도 소홀했었다. 이번 주의 WIL은 항해99에서 제시해주는 필수 키워드들을 간단히 정리하고, 이번 한 주간의 회고록을 작성해보고자 한다. ORM [JPA] ORM(Object-Relational Mapper) [JPA] ORM(Object-Relational Mapper) 들어가며 지난 TIL에서 JPA를 사용하는 이유에 대해 다뤘었다. [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 들어가며.. annajin.tistory.com SQL(Structured Query Lang..
· Study/TIL
들어가며 지금까지 짧게 잤던 날들의 후폭풍을 맞는 중이다. 자도자도 졸리고 피곤하네,,, 자꾸 늦게 자고 제때 못일어나서 CS스터디에 참여하지 못한다. 오늘 뭘 했든 못했든 일찍 자서 패턴을 되돌려야겠다. 라고 생각하며 오늘의 TIL은 주특기 첫번째 주차 과제인 [나만의 블로그 만들기]를 개발하면서 겪은 트러블 슈팅을 하고자 한다. 트러블 슈팅 문제 - PropertValueException 에러 너무 간단한 실수라 트러블 슈팅을 할까 말까 고민했는데 나중에 같은 실수하는 걸 방지하기 위해서 작성한다. 전체 에러 코드는 다음과 같았다 org.hibernate.PropertyValueException: not-null property references a null or transient value : c..
· Study/TIL
들어가며 주특기 주차가 시작되었다. JPA를 처음 사용해보는 거라서 삽질을 엄청나게 하느라고 따로 공부한 내용은 없었다. DAO와 DTO의 차이는 정리한 적이 있지만 오래 전 포스팅이라 내용이 부족한 것 같아 오늘의 TIL은 간단하게 JPA에서 사용하는 domain과 DTO의 차이점에 대해 간단하게 정리해보고자 한다. [개발지식] DAO / DTO(VO)란? [개발지식] DAO / DTO(VO)란? https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/ DTO의 사용 범위에 대하여 1. DTO란? DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)입니다. 간략하게 D.. annajin..
· Study/TIL
들어가며 JPA를 본격적으로 시작하려고 하자마자 에러가 터졌다. 역시 초기 세팅 후에 피할 수 없는 우리의 에러ㅎㅎㅎㅎㅎㅎ 오늘의 TIL은 JPA 프로젝트 세팅을 시작하다 만난 에러 트러블 슈팅을 해보고자 한다. 트러블슈팅 문제1 - hibernate.properties not found 에러 구글링 해보니 JDK 버전의 문제였다. JDK 8과 달리 JDK 11버전은 JAXB 라이브러리를 내장하고 있지 않기 때문에 pom.xml 파일에 별도로 추가해 주어야 한다고 한다. pom.xml에 아래 디펜던시를 추가해주면 해결된다. javax.xml.bind jaxb-api 2.3.0 문제2 - Connection is broken 에러 이 에러는 H2를 실행시켜두지도 않고 연결하려고 해서 생긴 에러였다. 터미널..
· Study/TIL
들어가며 인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 강의 수강을 시작했다. 기존에는 Mybatis를 사용했었는데 항해99 커리큘럼에서 JPA를 사용하기도 하고, JPA가 여러모로 개발하기에 편리할 듯 싶어 이번에는 Mybatis대신 JPA를 공부하고 사용하기로 했다. 오늘의 TIL은 JPA를 사용하는 이유와, 강의 내용을 따른 초기 세팅 방법을 정리해보고자 한다. JPA를 사용하는 이유? JAVA는 객체지향언어이고, JAVA를 사용하는 Spring 역시 객체지향적으로 이루어져있다. 그런데, Spring과 함께 주로 사용하는 DB는 관계형 데이터베이스이다(Oracle, MySQL 등. 이하 관계형 DB). 즉, 객체 지향 언어를 사용하고 있다면 객체 데이터를 관계형 DB를 사용해서 관리하게..
· Study/TIL
들어가며 주특기 주차를 들어가기에 앞서 경쟁력을 키우기 위해 무엇을 공부하면 좋을까 고민하다가 초보자를 위한 로드맵을 발견했다. 이 정도까지 알아야한다고? ...라는 생각이 들어서 더 찾아봤는데 완전히 허무맹랑한 가이드는 아니였다. 기술면접을 대비하기 위한 Github Repo들을 뒤져보니 더하면 더했지 덜하지는 않더라. 앞으로 갈 길이 멀다... 먼 길을 떠나 내일 한 걸음 더 나아가기 전에, 오늘의 TIL은 앞으로 정리해야할 것 & 정리하고 싶은 것들 목록을 쭉 나열해보고자 한다. 공부 가이드 참고 초보 개발자를 위한 로드맵 GitHub - pocojang/developer-roadmap: 2020년 웹 개발자가 되기 위한 로드맵 2020년 웹 개발자가 되기 위한 로드맵 :kr:. Contribute..
· Study/TIL
들어가며 거의 1개월동안 묵혀놨던 동기 & 비동기 / 블락 & 논블락을 드디어 정리했다! 지금까지 가슴 한 켠에 짐으로 남겨뒀었는데 해결하고 나니까 후련하다. 다만 다른 사람한테 설명을 해주려니 스스로 이해를 제대로 하진 못했다는 생각이 들어서 여러번 다시 봐야겠다는 생각이 들었다. 아무튼, 오늘의 TIL은 동기 & 비동기를 정리한 글을 다시 이해하기 위해 간단히 정리해보고자 한다! [개발지식] 동기 & 비동기 vs 블로킹 & 논블로킹 [개발지식] 동기 & 비동기 vs 블로킹 & 논블로킹 들어가며 예전에 Petpular 프로젝트 때 사용해본 Spring WebClient에서 동기 & 비동기 / 블로킹 & 논블로킹의 개념이 등장했었다. WebClient는 논블로킹방식으로 작동하고 block() 메소드를 이..
· Study/WIL
들어가며 벌써 항해 3주차인데 알고리즘 주차는 2주차...? 항해 시작한 지는 얼마 안된거 같은데 알고리즘 주차 시작한 지는 한달이 훌쩍 넘은 것 같다. 그만큼 열심히 보낸 일주일이라는 말이겠지! 이번주 WIL도 여느때와 같이 지난 일주일 간 배운 내용을 간단히 복습하고, 회고록을 작성해보고자 한다! 트리 / 이진 트리 나무를 뒤집어 둔 모양으로 생긴 트리. 그래프와 비슷하게 생겼지만 차이점은 분명히 존재한다. 트리는 순환 구조를 갖지 않는 그래프라는 점과 단방향 그래프라는 점, 단 하나의 부모 노드만 갖는다는 점이 그래프와 다르다. 이진 트리는 각 노드가 최대 두개의 자식을 가진다는 특징이 있는 트리의 일종이다. [TIL] 05/23 항해99 13일차 - 트리, 이진 트리, 문제풀이 [TIL] 05/2..
· Study/TIL
들어가며 이진 탐색은 예전에 맛보기로 공부했던 적이 있었기도 하고 크게 어려운 개념이 아니라 이해하기 쉬웠다. 늘 말하듯이 구현은 다른 문제지만. 오늘의 TIL은 이진 탐색의 개념을 정리해보고자 한다! 이진 탐색 이진 탐색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다. 출처 - 위키백과 이진 탐색(Binary Search)은 그림에서 보는 것처럼 중앙값을 기준으로 절반 씩 줄여나가면서 목표값을 찾아가는 알고리즘이다. 단, 이진 탐색을 하기 위해서는 자료가 순서에 따라 정렬되어 있어야 한다. 만약 정렬되어 있지 않은 자료에서 이진 탐색을 한다고 하면, 중앙값 기준으로 좌/우가 무조건 작거나 크다고 보장할 수 없기 때문이다. 이진..
· Study/TIL
들어가며 TIL을 쓰려고 보니 새삼 벌써 항해99에 승선한 지 19일 밖에 지나지 않았다는 사실을 깨달았다. 체감상 알고리즘 주차가 시작된지 한달은 족히 된거같은데 아직 한주가 더 남았다니... 이제 슬슬 체력이 딸리기 시작했다. 최근 며칠간 TIL을 쓸 기력이 없어서 대충 쓴 느낌이 컸는데, 오늘도 아마 비슷할 것 같다. 이번 주 일요일에 푹 쉬어서 체력을 보충해야겠다. 넋두리는 이정도로 하고, 오늘의 TIL은 강의 진도에 맞게 퀵 정렬과 병합 정렬의 개념을 정리하고자 한다. 정렬 퀵 정렬 퀵정렬(Quick sort)은 이름에서 알 수 있다시피 O(n log n)이라는 빠른 속도로 정렬할 수 있는 알고리즘이다. 퀵 정렬은 분할 정복(Divide and Conquert)를 통해 정렬을 하게 되는데, 기준..