전체 글233 [Architecture] iBATIS → MyBatis (NULL인데 왜 기존에는 됐을까? callSettersOnNulls까지 추적한 NPE 해결 과정) iBATIS 기반의 레거시 시스템을 MyBatis로 전환하는 작업을 진행하면서 예상하지 못했던 오류를 하나 만났다.SQL도 정상적으로 실행되고 대부분의 데이터는 문제없이 조회되는데,특정 데이터로 화면에 진입할 때만 MyBatis로 전환한 서버에서 페이지가 열리지 않는 현상이었다.더 흥미로웠던 점은 같은 데이터로 기존 iBATIS 기반 STG에서는 정상적으로 화면이 열린다는 것이었다.AS-IS STG (iBATIS)→ 정상TO-BE STG (MyBatis)→ 특정 데이터 조회 시 NPE 발생→ 페이지 진입 실패처음에는 SQL 변환 과정에서 문제가 생겼거나 ResultMap이 잘못 변환된 것으로 생각했다.하지만 원인을 따라가 보니 SQL 문법의 문제가 아니었다.iBATIS와 MyBatis가 DB의 NULL .. 2026. 9. 20. [IT] Chrome에서 웹페이지 전체 화면 한 번에 캡처하기 웹페이지가 길어서 여러 번 나눠 캡처해야 할 때, Chrome 개발자 도구를 이용하면현재 웹페이지 전체 영역을 한 번에 이미지로 저장할 수 있다.※ 사용 방법1. Chrome 개발자 도구 열기 (아래 3가지 중 하나의 방법 사용)F12Ctrl + Shift + I우측 상단 ⋮ → 도구 더보기 → 개발자 도구2. 개발자 도구가 열린 상태에서 아래 단축키를 입력Ctrl + Shift + P3. Command 창에서 아래 항목을 검색Capture full size screenshot4. Capture full size screenshot을 선택하면 현재 웹페이지 전체가 PNG 이미지로 저장 일반적인 Print Screen이나 캡처 도구는 화면에 현재 보이는 영역만 저장되지만,이 방법을 사용하면 스크롤해야 볼 .. 2026. 9. 7. [AI] ChatGPT Plus로 Codex CLI 설치 및 사용하기 (Windows) 최근 ChatGPT Plus 사용자도 Codex CLI를 사용할 수 있게 되었다.기존에는 ChatGPT 웹에서 코드를 복사하여 질문하는 방식이 일반적이었다면,Codex CLI는 로컬 프로젝트를 직접 분석할 수 있다는 점이 가장 큰 장점이다.특히 대규모 레거시 프로젝트나 현대화 프로젝트를 분석할 때 상당히 유용하다.이번 글에서는 Windows 환경에서 Codex CLI를 설치하고 사용하는 방법을 정리해 보려고 한다.1. Node.js 설치 Codex CLI는 Node.js 기반으로 동작한다.먼저 Node.js를 설치한다.https://nodejs.org/ko/download Node.js — Node.js® 다운로드Node.js® is a free, open-source, cross-platform Jav.. 2026. 7. 7. [Network] 개발자를 위한 네트워크 입문 가이드 프로젝트에 처음 투입되면 가장 먼저 전달받는 정보 중 하나가 네트워크 설정 정보이다. IP 주소 : 10.10.10.25서브넷 마스크 : 255.255.255.0게이트웨이 : 10.10.10.1DNS 서버 : 10.10.10.100 그리고 이런 이야기를 듣게 된다.NAC 등록 요청하세요MAC 주소 알려주세요IP 설정해주세요DNS 설정이 필요합니다NAT IP 알려드릴게요처음에는 모두 낯설지만 각각의 의미를 이해하면 생각보다 어렵지 않다.이번 글에서는 프로젝트 투입 시 가장 자주 접하게 되는 네트워크 기본 개념을 정리한다.1. 이더넷이란 무엇일까?이더넷(Ethernet)은 장비와 네트워크 장비를 연결하여 데이터를 주고받기 위한 가장 대표적인 유선 네트워크 기술이다.우리가 흔히 말하는 랜선을 이용한 연결이 바.. 2026. 6. 23. [Java] API 서버 개발 기본 Spring으로 API 서버를 개발할 때 가장 중요한 건 딱 하나이다.이 서버는 "화면(View)"을 반환하는 서버인가?아니면 "데이터(JSON)"를 반환하는 서버인가?요즘 대부분의 시스템은 프론트엔드(React, Vue 등)와 분리된 구조이기 때문에Spring 서버는 거의 항상 JSON 데이터를 반환하는 API 서버 역할을 한다.이 글에서는 API 서버 개발에 필요한 핵심 개념만 빠르게 정리한다.※ @Controller vs @RestController API 서버라면 → 거의 무조건 @RestController 사용 ▶ @Controller@Controller@GetMapping("/home")public String home() { return "home";}"home"이라는 데이터를 반환하는.. 2026. 5. 5. [Backend] 트래픽 폭주를 막는 4가지 방법 (Rate Limiting, Caching, Asynchronous Processing, Load Balancing) 트래픽은 언제든 폭발할 수 있다.서비스를 운영하다 보면 이런 상황이 반드시 온다.인기 이벤트 오픈 (예:콘서트 티켓팅)특정 시간대 트래픽 집중 (출근 시간, 점심 시간)외부 유입 급증 (광고, 바이럴)특히 티켓팅 시스템이나 쇼핑몰에서는짧은 시간에 수만~수십만 요청이 몰리면서 서버가 다운되는 상황이 발생할 수 있다.이때 단순히 서버 스펙을 올리는 것만으로는 해결되지 않는다.요청 자체를 제어하고, 분산하고, 최적화하는 구조가 필요하다.이번 글에서는 백엔드 관점에서 트래픽 폭주를 막는 4가지 방법에 대해 정리한다.※ Rate Limiting (요청 제한)특정 사용자(IP 또는 API Key)가 일정 시간 동안 보낼 수 있는 요청 수를 제한하는 방식핵심 : 과도한 요청 자체를 막는다. ✅ Java 예시 (간단한.. 2026. 4. 25. [DevOps] 도시락 비유로 이해하는 Docker, Jenkins, Kubernetes 구조 개발을 하다 보면 "내 PC에서는 잘 되는데 서버에서는 왜 안 될까?"라는 고민을 한 번쯤은 하게 된다.이 문제를 해결하기 위해 등장한 것이 Docker이고, 이를 자동으로 빌드하고 배포하는 것이 Jenkins, 그리고 실행된 서비스를 안정적으로 운영하는 것이 Kubernetes이다.이 글에서는 Jenkins, Docker, Kubernetes를 하나의 흐름으로 연결해서 이해해보자조금 더 쉽게 이해할 수 있도록 '도시락'이라는 비유를 활용해 전체 구조를 직관적으로 정리해보자※ 핵심 개념Image (이미지) = 포장된 도시락 (재료를 준비하고 요리까지 완료해, 꺼내서 바로 먹을 수 있는 상태) - 실행에 필요한 코드 + 라이브러리 + 설정이 포함된 불변(immutable) 템플릿 - 읽기 전용이며, 컨테이.. 2026. 4. 23. [Cloud] AWS 자격증(SAA-C03) ※ 강의자료 ※ 기출문제(해설포함) 비밀번호가 설정된 PDF 파일입니다. 2026. 4. 15. [DevOps] Linux 표준 경로와 실무 디렉토리 구조 파악 방법 ※ 리눅스 표준 경로 정리리눅스는 FHS(Filesystem Hierarchy Standard)라는 규격에 따라 디렉토리 구조가 정의되어 있다.즉, 서버가 달라도 주요 경로 의미는 동일하다.✅ /etc - 시스템 전역 설정 (시스템과 서비스 설정 파일 위치) ▶ 대표 파일/etc/hosts : IP ↔ 호스트 매핑/etc/passwd : 사용자 계정/etc/shadow : 비밀번호 해시/etc/fstab : 마운트 설정/etc/resolv.conf : DNS ▶ 대표 명령어cat /etc/hosts# 서버의 로컬 DNS 설정 확인# cat : 파일 내용 출력# /etc/hosts : 호스트 매핑 파일✅ /var - 로그 및 가변 데이터 (시스템 실행 중 생성/변경되는 데이터) ▶ 대표 위치/var/log.. 2026. 2. 22. 이전 1 2 3 4 ··· 26 다음