일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Java
- 최단경로
- 우선순위큐
- union-find
- 직무면접
- 유니온 파인드
- scikit-learn
- dto
- top-down
- kmeans
- clean code
- 플로이드 와샬
- Android Studio
- 음수가 포함된 최단경로
- 다익스트라
- BufferedReader
- 벨만 포드 알고리즘
- Controller
- spring boot
- disjoint set
- Python
- 엔테크서비스
- bottom-up
- compiler
- 거쳐가는 정점
- 코딩테스트
- 동적계획법
- onclick
- 기술면접
- Django
- Today
- Total
목록전체 글 (132)
춤추는 개발자
✅ CKAD 취득 후기 주변에서 CKA, CKAD를 취득했다는 이야기를 듣고 무슨 자격증인지 찾아보니, k8s와 Docker 기반으로 MSA를 구성하는 방법과 관련된 자격증이라는 것을 알았다. 실무에서 개발하는 서비스도 컨테이너 기반이였고, 간혹 스크립트를 수정할 때마다 매번 구글링했던 경험이 있었는데 관련된 공부를 어떻게 해야할지 고민하던 와중에 아주 반가운 자격증이였다. 실무에서도 활용하고 자격증도 딸겸, 지난 5월부터 Udemy - CKAD 강의를 수강하며 공부를 하기 시작했다. Udemy - CKAD강의는 총 15개의 섹션으로 이루어졌고, 모의고사 형태의 Mock exam이 있어서 실전 연습하기에 더할 나위없이 좋다.👍 여러 블로그를 보면 Udemy 강의를 추천하는데 직접 해보니 이유가 많..
보호되어 있는 글입니다.
[ 📢 세줄 요약 ] 특정 테이블의 데이터를 대량으로 삭제할 수 있는 API 개발 API 속도 개선을 위해 비즈니스 로직을 단계적으로 접근 각 단계별로 속도 개선을 위한 코드 리팩토링 ✅ 배경과 상황 사업팀으로부터 하나의 요청사항을 받았다. 관리자 포탈에서 발신번호를 대량으로 삭제할 수 있는 기능을 만들어주세요. 기존에는 발신번호의 상세 조회 페이지에서 한 건씩 삭제할 수 있는 기능이 있었기에, 대량으로 삭제하는 건 크게 어렵지 않을 거라고 생각했다. 단순히 DB에서 삭제하는게 아니라 타 시스템의 발신번호 삭제 API를 호출하는 방식이였고, 삭제 대상들을 엑셀 파일로 업로드받아서 삭제 프로세스를 진행했을 때, 약 20초안에 200건까지 삭제가 가능했다. 관리자 포탈에서 WAS의 응답값을 기다리는 시간이 ..
✅ Static / 스프링 빈 [ 🔑 간단요약 ] 특정 클래스에서 멤버 변수를 선언 및 초기화를 동시에 할 때, static 클래스의 메서드를 호출해서 초기화 하는 상황에서 NPE가 발생 스프링이 빌드되면서 객체들이 메모리에 저장되는 시점과 스프링 컨테이너가 로드되는 시점 등에 따른 차이 이해하기 ✅ 빈 주입이 안되는... WAS 프로젝트에는 공통적으로 보안 시스템에 로그를 적재하는 로직이 존재한다. 해당 로직들을 리팩토링하는 과정에서 빌드 자체가 실패하는 문제가 있었다. public class YamlUtil { @Autowired private Environment env; public String getProperty(String key) { return env.getProperty(key); } ..
✅ 인덱스(Index) [ 🛠 간단 요약 ] 조회 기능의 성능을 높이고 싶은 경우, DB에서 SELECT 시간이 오래 걸리는 경우, 데이터베이스의 검색 속도를 향상시키는 인덱스를 먼저 고려해보자 ✅ 답답한 조회 시간 입사 초, 담당하고 있는 웹 사이트에서 조회 시간이 너무 오래걸린다는 문의가 들어왔다. 관리자 포탈에서는 이력 / 통계성 조회 기능이 많다보니, 기간을 길게 설정해서 데이터를 조회하면 DBConnectionTimeOut 에러가 발생하는 경우가 있었다. 하지만, 이번에는 조회 결과가 수만건도 안되는데 조회가 되지 않는 상황이었다. 보통 이런 경우, 시스템에 문제가 없다면, 3가지의 케이스가 있다. 첫번째는 클라이언트(프론트)에서 조회 결과를 한번에 렌더링하는 경우, 두번째는 WAS(백엔드)에서..
✅ Mybatis Spring 웹 어플리케이션에서 쿼리 기반으로 데이터베이스에 접근하는 SQL Mapper 프레임워크 [ 🔑 간단 요약 ] Mybatis의 쿼리가 작성되는 XML 문서에서 요청 파라미터와 동적 쿼리 기반으로 변수를 작성하는 2가지 케이스 쿼리가 작동하지않는 이슈를 접하고, 각 케이스를 비교 ✅ 배경과 상황 새로운 API를 개발하고 있던 팀원에게 질문을 받았다. 똑같은 쿼리인데 WAS에서는 조회 결과가 안나오고, DB 툴에서는 결과가 나옵니다. 실제로 WAS에서는 조회 결과가 0이 나오고, DBeaver에서는 정확한 조회결과가 나왔다. 이런 경우는 처음 접해서 원인을 어떻게 찾아야할지 고민이었다. WAS와 DB간의 연동, 회사내 방화벽, 반환 타입 등 다각도로 보던 중 동적쿼리가 눈에 들어..
✅ 세줄 요약 🛠 특정 조건에서만 조회 기능이 동작하지 않는 이슈 확인. 🛠 기능 동작 과정을 거슬러 올라간 결과, Emoji 데이터가 포함된 경우와 클라이언트로 반환하기 직전에 지나가는 XSS 필터에서 문제 원인을 발견. 🛠 UTF-16의 특별한 인코딩 방식인 Surrogate pair를 기반으로 문제 해결. ✅ 배경과 상황 [ 에러 상황 ] 담당하고 있는 고객 포탈 사이트에서 특정 조건에만 조회 기능이 동작하지 않는 이슈가 있었다. 가장 먼저, 서버 로그를 살펴보니 아래와 유사한 내용이 남겨져 있었다. 2023-11-10 20:08:17.435 WARN 16980 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [or..