분류 전체보기
-
Mybatis(1) - Mybatis카테고리 없음 2021. 10. 16. 21:23
이번 포스팅은 Mybatis에 관해서 적을 예정입니다. 대부분 구글링을 하니 정확하게 Mybatis에 대해 설명하는 블로그가 없는 것 같았습니다. 그래서 이번 프로젝트 중 JPA를 사용할 필요가 없어서 Mybatis를 사용 할 기회가 생겨 정리해보려고 합니다. 물론 @Mapper와 어노테이션 혹은 .XML파일로 맵핑해서 사용하면 된다라고 하는 글들은 많습니다. 그러나 이것이 어떻게 동작하고 JPA와 무엇이 다른지 자세하게 알아보는 시간을 가져보도록 하겠습니다. 일단 요즘 대부분의 프로젝트에서 JPA를 사용하고 있습니다. 그리고 세계적 통계로 봐도 JPA가 훨씬 우세하다고 생각합니다. 그러나 언젠가는 JPA가 아닌 다른 프레임워크가 유행 할 수 있습니다. 그 때 중요한 것은 기본적인 것을 아는 것 이라고 ..
-
Spring(7) - Connection Pool(Hikari)카테고리 없음 2021. 10. 13. 19:21
안녕하세요. 이번에는 커넥션 풀이라는 주제로 포스팅해보려고 합니다. 아직 주니어 개발자라서 커넥션 풀 관리는 안해도 서비스가 잘 작동하기는 합니다. 그러나 트래픽이 많은 서비스에서는 커넥션 풀이 아주 중요한 역할을 합니다. 왜냐하면 커넥션 풀이 부족해서 클라이언트가 서비스를 이용 못하는 경우, 커넥션 풀이 넘쳐나서 메모리가 초과되는 경우 등 다양한 문제가 발생할 수 있습니다. 그래서 이번 기회에 커넥션 풀에 관해 공부해보겠습니다. Connection Pool(커넥션 풀)이란? 커넥션 풀은 서버가 DB에 접근하기 위한 통로라고 생각하시면 됩니다. 이러한 커넥션을 얻어와 SQL문을 직접 보내고 DB와 통신하게 됩니다. 커넥션 풀 종류는 대표적으로 Tomcat-JDBC, HikariCP가 있습니다. Sprin..
-
리팩터링 Chapter 8 - 기능 이동Computer기본지식/리팩터링 2021. 10. 8. 15:25
이번 챕터는 프로그램 요소를 생성 혹은 제거하는 것에 더해 클래스나 모듈이동을 주로 설명합니다. 이 챕터에서 가장 중요한 작업은 테스팅이라고 생각합니다. 필드나 함수를 클래스 간의 이동 할 경우 충돌이 발생할 수 있습니다. 그래서 한 단계씩 하면서 꼭 테스트를 진행해야합니다. 그럼 시작해보겠습니다. 8-1 함수 옮기기 class Account { get overdraftCharge() {...} class AccountType { get overdraftCharge() {...} 함수를 이동하는 기준은 모듈화를 얼마나 잘 시켰는지입니다. 모듈화는 프로그램을 수정하려 할 때 해당 기능의 작은 부분만 이해해도 가능하게 해주는 능력입니다. 예를 들어 어떤 함수가 자신이 속한 모듈 A의 요소들보다 다른 모듈 B..
-
리팩터링 Chapter 7 - 캡슐화카테고리 없음 2021. 10. 3. 20:53
이번 포스팅은 캡슐화에 관한 내용입니다. 반복적인 내용이 많이 있어서 조금 생략했습니다. 7.1 레코드 캡슐화하기 organization = {name:"애크미 구스베리", country: "GB"} @Getter @Setter class Organization { constructor(data) { this._name = data.name; this._country = data.country; } } 위의 방식은 레코드를 클래스로 만들어서 관리하는 것입니다. 레코드 방식은 필드이름을 노출하는 형식, Map과 Hash같은 자료구조를 일컫는 말입니다. Map과 Hash같은 경우는 변수명은 지정 할 수 있지만 필드명은 지정이 불가능합니다. 그래서 클래스로 관리하게되면 get,set을 이용하여 캡슐화가 가능해..