본문 바로가기

전체 글207

MyBatis vs. JPA, JPA를 공부해야 하는 이유 현재 회사에서 참여 중인 SI 프로젝트에서는 Oracle을 사용 중입니다. DB에 조작이 필요할 때 (select, insert, update, delete 등) 사용하는 라이브러리는 MyBatis인데요. 쿼리를 미리 작성해 두면, 필요할 때 적절히 호출해서 사용할 수 있고, 쿼리가 잘못 작성되거나 하는 등의 이유로 에러가 발생하면 콘솔에 실행된 쿼리와 함께 에러 코드가 출력되어 에러를 쉽게 잡을 수 있습니다. MyBatis의 가장 큰 장점이라고 하면, 쿼리를 그대로 작성할 수 있단느 점입니다. 이 장점 덕분에 저는 입사 후에 별다른 학습 없이 기존의 SQL 지식만을 가지고도 쉽게 개발에 참여할 수 있었습니다. 다만 단점이라고 하면, 쿼리가 길어지다 보면 읽기 복잡할 뿐만 아니라, mapper 파일 (*.. 2022. 7. 27.
[Java] 자바의 신 1 ~ 7장 학습 내용 정리 # 본 글은 [자바의 신 - 이상민 저]를 바탕으로, 그룹 스터디를 진행하며 학습한 내용을 정리한 글입니다. # 본 글은 자바의 신 1권의 1 ~ 7장 중, 중요하거나 쉽게 놓칠 수 있는 부분을 체크하여 작성한 글입니다. 목차 3. 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요 (OOP) 4. 정보를 어디에 넣고 싶은데 (변수) 5. 계산을 하고 싶어요 (연산자) 6. 제가 조건을 좀 따져요 (조건문) 7. 여러 데이터를 하나에 넣을 수는 없을까요? (배열) 3. 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요 객체지향 언어 이 세상의 사물을 나타내는 방법. 모든 사물은 “상태 (status)와 행위(behavior)가 있다. 상태: 책이 놓여 있다, 펼쳐져 있다 행위: 책을 덮는다, 책의 페이.. 2022. 7. 25.
[CRUD 웹 게시판 만들기] 3. 글, 댓글 Domain 제작, 글 CRUD 기능 개발 * 본 시리즈는 1인 개발 'CRUD 웹 게시판 만들기'를 진행하며 과정을 기록한 것입니다. * 해당 프로젝트는 GitHub 저장소를 참고해 주세요. 목차 1. 프로젝트 구조 변경 2. Posts 도메인 제작 3. CRUD 메소드 작성 4. 작성한 CRUD 메소드에 대한 테스트 코드 작성 5. Comments 도메인 제작 1. 프로젝트 구조 변경 기존의 프로젝트 구조는 이전에 책을 따라 진행했던 프로젝트인 '혼자 구현하는 웹서비스' 의 형태를 매우 닮아 있었습니다. 프로젝트를 처음 시작할 때는 Spring에 대한 이해도가 지금보다 부족했고, 어떤 식으로 구조를 가져가야 할지 판단이 서지 않았습니다. 현재는 아래와 같은 형식으로 변경하였습니다. 기본적으로 개발하며 생기는 클래스는 src/main/java/.. 2022. 7. 24.
[CS Study] 1. 디자인 패턴과 프로그래밍 패러다임 (1) # 본 글은 인하대학교 단풍나무숲 CS 스터디 에 작성한 내용을 그대로 가져온 글입니다. # 본 글은 내용상 부족하거나 미흡한 점이 많습니다. 디자인 패턴과 프로그래밍 패러다임(1) 목차 싱글톤 팩턴 팩토리 패턴 전략 패턴 옵저버 패턴 프록시 패턴과 프록시 서버 이터레이터 패턴 노출모듈 패턴 1. 싱글톤 패턴 정의: 하나의 객체는 하나의 인스턴스만 가진다. 객체를 미리 생성해 두고, 필요할 때 해당 객체를 가져다 쓴다 장점: 메모리 관리의 효율성 증가 클래스 간의 데이터 공유가 쉽다 단점: 싱글톤 구현을 위한 코드 자체가 많이 필요하다 테스트가 어렵다 (단위 테스트, TDD) 클라이언트가 구체 클래스에 의존함 관련 설명 링크: 우아한테크코스 - 싱글톤 패턴이란? 2. 팩토리 패턴 객체 생성과 사용 부분을.. 2022. 7. 24.
[HTTP] HTTP 메소드와 사용 예 인프런에서 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 있습니다. URI와 리소스, HTTP 메소드에 대한 내용을 공부하였고, 이를 진행 중인 토이 프로젝트에 적용시켜 보고자 하였습니다. 1. URI와 리소스 2. 리소스와 HTTP 메소드 3. HTTP 메소드 5가지 4. 실제 코드에 적용시켜 보기 5. 기타 1. URI와 리소스 URI란, "Uniform Resource Identifier" 의 줄임말입니다. 즉, "리소스 식별자" 라고 할 수 있습니다. 이 외에 URL, URN이 존재합니다. URL은 "Uniform Resource Locator", URN은 "Uniform Resource Name"의 약자입니다. URL은 특정 리소스의 위치를 가리키며, URN은 특정 리소스의 이름을 .. 2022. 7. 19.
[Spring] Dependency Injection을 수행하는 세 가지 방법 회사에서 진행하는 개발 프로젝트에 참여하며, 로직 참고를 위해 기존의 소스 코드를 많이 들여다 보게 되었습니다. Spring을 공부하고 나니, 예전에는 봐도 잘 모르겠던 내용들이 이제는 눈에 제법 잘 들어오는데요. 그러던 중 재미있는 점을 발견했습니다. 아래는 회사 코드의 일부 예시입니다 (실제 코드 내용은 아니며, 같은 맥락으로 재구성한 내용입니다). @Controller public class ManageHistoryController() { @Inject public ManageHistorySerice manageHistoryService; @Inject public AuthService authService; @Inject public SearchParam searchParam @RequestMa.. 2022. 7. 11.