profile
inho ha / ian(swatchon) / iha(42seoul)

코드 스타일 적용 자동화

인천의 한 일요일, 지인과 함께 인증 서비스 개발을 하기로 하였다.프로젝트 세팅 중에 코드 스타일 적용 방식에 대하여 이야기 하였다.지인분의 회사에서는 pre-commit을 활용하여 commit 이전에 코드 스타일이 자동으로 적용되도록 하고 있다고 한다.이를 활용하면

2024년 7월 15일
·
0개의 댓글
·

프로덕션 서비스에서 무중단 테이블 분리

서울의 한 월요일.장바구니 테이블을 분리하는 작업을 담당하게 되었습니다.장바구니 테이블은 고객이 주문할 상품을 담아두는 테이블입니다.장바구니 테이블에는 샘플 상품과 일반 상품이 함께 담겨있습니다.샘플 상품에 대한 정책 변경으로 장바구니 테이블에서 샘플 상품과 일반 상품

2024년 6월 25일
·
0개의 댓글
·

모호한 컬럼명 리팩토링에서 느낀 테스트 코드의 중요성

서울의 한 월요일. 내가 작성한 코드가 예상과 다르게 동작했다. 모델 인스턴스가 리턴될 것으로 예상했는데 string 이 리턴되었다. 문제 발견 customer와 country는 연관관계가 있는 모델이다. customer에 countryId 컬럼이 있고, 그래서 위

2024년 6월 25일
·
0개의 댓글
·

[면접 학습법] Redis가 RDBMS보다 빠른 이유

서울의 한 수요일.Redis가 RDBMS보다 빠른 이유에 대하여 질문을 받았습니다.이에 대하여 면접 과정 혹은 그 이후에 학습한 내용을 정리해 보겠습니다.Redis는 메모리에 데이터를 저장하기 때문에 디스크에 저장하는 RDBMS보다 빠르다.이는 구글에 Redis가 빠른

2024년 6월 18일
·
0개의 댓글
·

기술 면접에서 무조건 이득 보는 방법

면접의 결과는 합격 혹은 불합격입니다. 합격하게 된다면 입사할 수 있습니다. 이득이죠. 불합격하게 된다면 회고하며 부족한 점을 확인할 수 있습니다. 이득이죠. 결론은 면접을 보는 것은 항상 이득을 볼 수밖에 없는 구조라는 것입니다. 기술 면접 불합격 기술적으로 성

2024년 6월 17일
·
0개의 댓글
·
post-thumbnail

2024 네이버 공채 후기

2024년 상반기 네이버 공채에 Tech 백엔드로 지원한 후기입니다.이 과정에서 다른 후기를 보면 많은 도움을 받았기에받았으면 돌려주는 것이 인지상정이므로 저도 후기를 작성합니다.코딩 테스트는 프로그래머스 플랫폼에서 진행되었습니다.외부 IDE 사용은 금지였습니다.3문제

2024년 6월 14일
·
0개의 댓글
·

대용량 데이터 다운로드 기능 개선

대용량 다운로드 기능 개선 작업에서 생각했던 해결 방법과 선택하지 않은 이유 정리 문제 RDB에 저장된 데이터를 가공하여 CSV 형식으로 다운로드 받는 기능에서 Timeout이 발생 어드민 서버에서 사용하는 기능입니다. 사용 빈도가 매우 낮습니다. 해결 방법 1

2024년 6월 14일
·
0개의 댓글
·

[Blue Green 무중단 배포] docker + nginx + git actions 으로 간단 구현

인천의 한 수요일. 사이드 프로젝트에서 배포할때 마다 20초 정도 접속 불가한 것에 대해 찝찝함이 느껴졌다. 센서에서 쏜 정보를 저장하는 서버인데, 하필 배포 타이밍에 중요한 정보를 전송할까봐 무중단 배포를 적용하기로 했다. Blue Green Deployment

2024년 6월 5일
·
0개의 댓글
·

[Ruby on Rails] Memory Bloat

서울의 한 월요일.내가 개발한 기능이 비동기 서버를 다운시켰다. (다행히 development 서버에서...)이를 해결하는 과정에서 공부한 Ruby 에서 발생하는 memory bloat 와 해결 방법에 대해 공유해 봅니다.누군가는 또 비슷한 일을 겪고 이 글을 본다면

2024년 5월 23일
·
0개의 댓글
·
post-thumbnail

[bugfix] Caused by: java.sql.SQLIntegrityConstraintViolationException at ProblemRepositoryTest.java:48

서울의 한 월요일로컬에서는 모두 성공적이던 테스트가 서버에서는 실패했다.많은 테스트중 2가지만 실패했다.원인이 무엇일지 해당 에러를 구글링 해보았는데...구글링 결과 데이터베이스 무결성 관련된 에러라고제약조건을 위배 했을때 발생한다고...이전에 다른 테스트는 서버에서도

2022년 10월 4일
·
0개의 댓글
·

mockito 테스트 하나씩 실행하면 성공하고 한번에 실행 하면 실패하는 경우

최근에 프로젝트를 진행하며 2주동안 해결하지 못했던 문제가 있었습니다.service 단위 테스트를 작성하는데 mockito 를 사용하여 repository를 mock 처리하고 service에 insertMock 하였습니다.단위 테스트에서 테스트 메서드를 하나씩 작성할

2022년 7월 11일
·
0개의 댓글
·
post-thumbnail

독립 테스트 환경 구축

유저를 20명 넣고 findAll 을 한 뒤 출력을 해봤는데 user1~10이 2번씩 들어가있다.유저 이름에 유니크 제약 조건을 걸지 않았다\-> entity에 유니크 제약 조건이 없는거 처리해주기로컬 데이터베이스에서 테스트를 진행하고 있었다.\-> 로컬 데이터베이스의

2022년 5월 28일
·
0개의 댓글
·

entity setter 고민 결과 2

지난 고민에서 내린 결론은 user와 team의 관계를 저장하는 userTeam을 서비스 계층에서 생성하고 플러시 하는 방식이다.하지만 이 방법은 객체지향적이지 못하다는 생각이 들어 더 좋은 방법을 계속 고민했다.성능도 좋으면서 객체지향적인 코드에 대한 고민을 계속한

2022년 5월 26일
·
0개의 댓글
·

웹 애플리케이션과 영속성 관리

자바 ORM 표준 JPA 프로그래밍http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330

2022년 5월 23일
·
0개의 댓글
·

entity setter 고민 결과

단순히 유저에 팀을 추가하고 끝나는 서비스라면서비스 계층에서 단순히 UserTeam 인스턴스를 생성하고 트랜잭션을 커밋하는 방식으로 구현한다.유저에 추가된 팀이 여러개라면 여러개의 UserTeam 인스턴스를 생성하고 트랜잭션을 커밋한다.인스턴스 하나 생성할 때 마다 f

2022년 5월 22일
·
0개의 댓글
·
post-thumbnail

entity setter

entity에서 멤버 변수를 초기화 할 때 setter 메서드를 사용하는 것은 문제점이 있다.setter 메서드를 사용하면 한번 초기화 이후 값이 변경 되면 안되는 경우에 다시 setter 메서드를 사용하여 변경할 가능성이 존재한다.setter 메서드의 메서드명에는 메

2022년 5월 22일
·
0개의 댓글
·

값 타입

자바 ORM 표준 JPA 프로그래밍http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330JPA의 테이터 타입은 엔티티 타입과 값 타입으로 나눌

2022년 5월 20일
·
0개의 댓글
·

프록시와 연관관계 관리

자바 ORM 표준 JPA 프로그래밍http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330

2022년 5월 19일
·
0개의 댓글
·

QueryDSL

자바 ORM 표준 JPA 프로그래밍 http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330 QueryDSL JPA Creiteria는 너무 복잡하여

2022년 5월 18일
·
0개의 댓글
·

객체지향 쿼리

자바 ORM 표준 JPA 프로그래밍 http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330 객체지향 쿼리 식별자로 조회와 객체 그래프 탐색 만으로는

2022년 5월 17일
·
0개의 댓글
·