전체 글 26

그로잉맘 검사에 디자인 패턴 적용하기

글을 읽기 전에 한번 봐주세요! - 주니어 개발자라 미숙한점이 있을 수 있습니다. - 피드백 환영합니다. 다만 디엠으로 해주시면 감사하겠습니다. 상처받아요 개요 저는 그로잉맘에서 백엔드 개발자로 일하고 있는 김영석이라고 합니다. 그로잉맘에서는 육아를 하시는 부모님들을 위해 각종 검사를 제공하고 있습니다. - 아이의 발달 수준을 알 수 있는 발달검사 - 아이의 언어 발달 수준을 알 수 있는 언어 발달검사 - 아이의 기질을 알 수 있는 아이 기질검사 해당 검사들은 두가지 과정을 통해 진행 됩니다 1. 아래 이미지와 같이 아이에 대한 설문을 하면! 2. 그로잉맘의 전문 상담사 분들이 직접 작성하신 육아 관련된 글(멘트)들을 추천 해주게 됩니다! 문제점 제가 만든 기존 검사 멘트 추출 로직의 문제점은 아래 두가..

자바 2022.09.07

DB Connection Pool에 대해서

커넥션 풀이란? 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(pool)에서 가져다 쓰고 반환하는 기법 커넥션 풀 확인하는 방법 Mysql command $ show processlists; 스프링에서 커넥션풀(HikariCP)에 대한 로그 확인하는법 (application.yml) logging: level: com.zaxxer.hikari.HikariConfig: DEBUG com.zaxxer.hikari: TRACE 왜 커넥션 풀이 필요할까? 음식점에 손님이 몰려오기전에 미리 음식을 준비 해놓는것과 비슷하다. 커넥션을 생성하는 비용이 사용자의 요청을 처리하는데 상당한 비용이 들기 때문에 미리 커넥션(음식)을 준비해 두는것이다. 물론 손님이 많이 없으면 필요없다..

디비 2022.09.03

절차지향 VS 객체지향 by Kotlin

절차지향 객체지향 차이점 - 객체의 유무 - 절차지향은 데이터 중심적 개발, 객체지향은 기능 중심적 개발 - 객체지향적으로 개발한다면, 객치지향으로 작성한 프로그램이 일반적으로 읽기가 더 편하다 - 객체지향적으로 개발을 하게 되면 유지보수를 할 때 어느 코드를 수정 해야할지 찾기가 비교적 쉬움 절차지향 예시 (고객이 자판기를 이용하는 프로그램) package proceduralvsoop var orangeJuice = 10 var appleJuice = 20 fun main() { var customerChanges = 1000 var customerHas: String? = null val wantJuice = "Orange juice" if (wantJuice == "Orange juice") { i..

자바 2022.08.29

책 단위테스트 느낀점 1편

사내에서 새로운 프로젝트를 시작하게 됐다. 이 프로젝트에서 단위 테스트를 도입 했는데, 어떻게 하면 단위 테스트를 잘 할 수 있을지에 대한 궁금증이 있었다. 단위테스트라는 책을 통해 이 궁금증이 해결되고 더 나은 단위테스트 코드를 작성할 수 있으면 좋겠다. 단위테스트 책을 요약할 때, 내가 느꼈던점 위주로 요약을 해보려고 한다. 필요하면 예제 코드도 함께 작성 해보려 한다. 느낀점 단위테스트란 작은 코드 조각 (단위)를 검증하고, 빠르게 수행하고, 격리된 방식으로 처리하는 자동화된 테스트다. 왜 작은 코드 조각일까? 내 생각으로는 오류를 빠르게 찾을 수 있고, 테스트 코드의 가독성이 높아지기 때문이라고 생각한다. 만약 양이 많은 코드를 검증한다고 생각하면 해당 테스트를 실행시킬때, 양이 많은 코드 중 ..

자바 2022.08.25

Kotlin Junit5 @ParameterizedTest

제가 토이 프로젝트를 진행할 때, 관리자가 호텔 이름을 통해 호텔을 조회할 수 있는 기능에 대한 테스트가 필요했습니다. 테스트에 들어가는 인풋값에 여러가지 데이터가 필요하게 되었는데 이유는 무작위로 검색한 이름마다 해당 이름에 맞는 호텔 정보가 잘 나오는지 확인하기 위함입니다. 그래서 사용한게 @ParameterizedTest 였습니다. 해당 어노테이션을 사용하면 하나의 테스트에서 여러개의 파라미터에 대한 결과 값을 검증할 수 있습니다. 즉 여러가지 호텔 이름으로 검색한 결과값을 검증할 수 있다는 뜻입니다. 아래 이미지와 같이 저는 호텔 이름 세개에 대한 결과값이 잘 검증되는지 확인 해보았습니다.

자바 2022.08.20