커뮤니케이션에 진심인 Github가 제시한 가이드라인
어느날 API 개발하다.. SonarLint에 Critical Code Smell 이 잡혔다.sonar rules 에 있는 설명을 자세히 읽어봤다.Using such generic exceptions as Error, RuntimeException, Throwable,
실제 서비스의 데이터베이스를 다루며 생긴 이슈였으므로..기능과 쿼리 속 테이블 명, 컬럼 명 등은 임의의 이름으로 대체하겠다.정확한 결과가 나오긴 하지만 리스폰스 속도가 3초가 넘는 쿼리가 있었다.해당 기능을 학생 관리 시스템으로 치환해보자면 아래와 같다.목적전체 과목
항상 뭔가 뜬구름 잡는 것처럼 들렸던 개념이다. 확실히 짚고 넘어가보자 Clustered Index 클러스터링 인덱스 키를 기준으로 정렬된 상태를 유지한다. mysql 기준, Primary key에 기본으로 적용되는 인덱스다. 테이블 마다 한 개만 적용 가능하다. l
취업했다 !! 많이들 축하해주지만, 솔직히 마냥 기쁘지만은 않다. 이것저것 잡념이 꽤 많아졌기에 정리하고자 아무말을 쓴다. 막내 중의 막내 나는 현재 24살이고, 꽤 빨리 취업한 편이다. 첫 지원서를 넣은 회사에 들어왔으니, 거의 준비 기간이 없었다고 봐도.. 될 듯
데이터베이스 쿼리 성능을 튜닝하는데 가장 먼저 해야할 일, 바로 실행 계획 분석이다.당연히 INDEX SCAN 할거라 생각했던 쿼리도, 막상 실행 계획을 보면 FULL SCAN인 경우가 많다.실제로 실행 계획을 제대로 확인하지 않아 서버 장애가 발생한 사례가 있다.커밋
문제 보기드디어.. 풀었다...일단 문제를 풀기 전 메모한걸 공유한다.구사과가 먹는 초콜릿의 개수를 출력한다. (초콜릿 > 100 일시 101 출력)집에 있는 모든 온풍기에서 바람이 한 번 나옴온도가 조절됨온도가 1 이상인 가장 바깥쪽 칸의 온도 -= 1초콜릿 += 1
N:1 관계에서의 N+1 문제 해결방안 에 이어지는 글입니다.지연로딩 적용 시, 컬렉션 또한 따로 조회해줘야 한다.N+1 문제가 발생하기 더 쉽고, 일대일/다대일보다 훨씬 대응이 까다롭다.Order 엔티티가 OrderItem 엔티티의 컬렉션을 필드로 가지고 있다고 가정
쿼리 요청을 단 한 번 했음에도 불구, 연관관계 엔티티로 인해 데이터 개수(N) 만큼 추가 쿼리 요청이 발생하는 문제연관관계에 있는 필드 모두 쿼리 1번으로 조회한다.fetch join으로 다른 객체 모두 로딩된 상태 -> 지연 로딩 발생 X후에 결과 리스트를 DTO
영속성 컨텍스트가 관리하지 않는 엔티티때문에 값을 수정해도 dirty checking을 하지 않는다.영속성 컨텍스트에서 key 값을 통해 엔티티를 조회한다.반환된 엔티티에서 원하는 요소를 수정하기만 하면 된다.커밋 시점에 dirty checking으로 UPDATE문을
팀 Github Repository 바로가기우수상 탔다!!!! ❤❤짧은 시간이었지만 진행 과정을 회고해보고자 한다.아... 재밌는거 개발하고 싶다...생각을 하던 찰나, 친구에게 GDSC 해커톤에 백엔드로 같이 팀을 이뤄 나가보자는 연락이 왔다.재밌을 것 같았지만, 팀
스프링으로 개발해보면서도, 스프링의 실체에 대해서 잘 모르고 개발하는 감이 있었다.이 강의로 스프링이 뭘 하고자 하는지, 어떤 기능을 왜 만들었는지 그림을 그릴 수 있게 됐다.스프링의 목적은 바로 객체 지향 원칙 SOLID를 고수하는 것이다. DI, IoC 등의 개념이
2022년 1월 3일 ~ 17일까지 '인프런' 이라는 사이트에 대용량 트래픽으로 인한 장애가 발생했다.인프런의 실무 관계자가 작성한 장애 부검글을 통해 배운 점을 간단히 정리해보고자 한다.https://tech.inflab.com/202201-event-pos
스프링이 나오고 시간이 갈 수록 자동이 선호되고, 발달하고 있다.최근 스프링 부트는 컴포넌트 스캔 방식으로 기본으로 사용한다.수동의 장점? 당연히 있다.인터페이스와 구현체가 한 눈에 명확히 보인다는 것이 가장 큰 장점이다.그러나 개발자 입장에서 상대적으로 번거롭고,설정
DiscountPolicy (interface) \- rateDiscountPolicy \- fixDiscountPolicy위와 같이 인터페이스와 구현체가 있고,모두 스프링 빈으로 등록한 상태다.그리고 위 코드로 호출을 했을 때,충돌이 난다고 가정한다.위와 같이,