분류 전체보기152 Java 동시성 완벽 가이드: 멀티스레드 환경에서 안전한 코드 작성하기 Java로 서버 개발을 하다 보면 동시성 이슈를 한번쯤은 만나게 된다. 개발 후 테스트나 운영 환경에서 여러 사용자가 동시에 접근하는 상황에서 데이터가 꼬이거나, 예상치 못한 결과가 나오는 경험을 한 번쯤은 해봤을 것이다. 그렇다면 왜 자바에서 이런 동시성 이슈가 발생할까? 그 이유는 크게 세 가지로 정리할 수 있다.멀티스레드 환경서버는 여러 요청을 동시에 처리하기 위해 스레드를 병렬로 실행여러 스레드가 같은 객체나 자원에 접근할 경우, 읽기·쓰기 순서가 뒤섞이면서 데이터 충돌 발생 가능JMMCPU 캐시와 메인 메모리 간 불일치 때문에, 한 스레드에서 변경한 값이 다른 스레드에 즉시 반영되지 않을 수 있으며, 이로 인해 문제가 발생하고, 예상치 못한 결과를 만들 수 있음원자성 및 실행 순서 문제i++ 같.. 2025. 9. 1. Spring IoC와 DI 완벽 이해하기(+예시) 스프링을 공부하다 보면 IoC와 DI라는 용어를 계속 마주치게 된다. 처음에는 이 개념들이 어려워 보이지만, 한번 제대로 이해하고 나면 스프링의 핵심이 왜 이것들인지 깨닫게 된다. 사실 이 개념들은 단순히 스프링만의 것이 아니라, 좋은 객체지향 설계의 기본 원칙들이다. 스프링은 이런 원칙들을 프레임워크 차원에서 자동으로 지원해 주는 것이다. 오늘은 IoC와 DI를 개념부터 동작 원리, 실제 코드까지 상세하게 살펴보겠다.참고로, 경력자 면접에서 아직도 물어보는 개념이기도 하다.제어의 역전 (IoC: Inversion of Control)제어의 역전은 이름 그대로 제어권이 뒤바뀌는 것을 의미한다.기존에는 내가 필요한 객체를 new로 개발자가 직접 생성하고 관리했다면, IoC에서는 외부(스프링 컨테이너)가 .. 2025. 8. 31. 스케줄링 보다는 Spring Batch! 기본개념 배치는 생각보다 장점이 많은데, 기존에 작업되어 있던 부분을 개선할 생각을 못했을까? 라는 의문이 들어서 다시 공부해 보았다.주기적으로 통계, 결산, 마감 같은 처리 작업이나 대량 데이터를 일괄 처리하는 작업을 하고 있거나, 할 예정이라면!스프링 배치를 제대로 공부해 보고 적용해 보는 것도 아주 좋은 선택이다. 배치 프로세싱이란?대량 데이터를 일괄 처리하는 방식으로 주기적이거나 조건에 따라 한번에 여러 작업을 처리하는 것을 말한다.특징실시간 처리가 필요 없는 작업에 적합빠른 응답성보다는 안정성과 대량 처리 효율에 초점주요 사용 사례금융 시스템 일괄 / 월간 결산근태 시스템 업무 마감 처리통계 데이터 생성(월간, 연간 등)대량 데이터 마이그레이션스케줄링 vs 배치구분스프링 스케줄링 (Spring Sch.. 2025. 8. 23. Docker CLI 명령어 총정리 Docker CLI는 컨테이너를 다룰 때 가장 기본이 되는 도구다.나중에 참고로 볼 수 있게 자주 사용하는 명령어들을 중심으로 다루어 보려 한다. 주요 Docker 명령어 요약이미지 관련목적명령어설명이미지 목록 확인docker images로컬에 저장된 이미지 리스트 확인 이미지 다운로드docker pull Docker Hub 또는 Registry에서 이미지 다운로드이미지 빌드docker build -t .현재 디렉터리의 Dockerfile로 이미지 생성이미지 삭제docker rmi 로컬 이미지 삭제이미지 내역 보기docker history 이미지 빌드 히스토리 확인 컨테이너 관련목적명령어설명컨테이너 실행docker run이미지로 컨테이너 생성 및 실행컨테이너 목록 보기docker ps현재 실행 중인 컨.. 2025. 6. 17. [1편] 자바 개발자의 AI Agent 구축기: 설계, 기술 스택, 학습 요즘 AI가 워낙 핫하다 보니, 챗GPT로 개발에 도움받아 본 적 없는 개발자는 이제 거의 없지 않을까 싶다.나도 개발하다 막히면 자연스럽게 AI의 도움을 받게 되고, 덕분에 AI 관련 기술과 서비스 설계 쪽에도 관심이 생겨서, 온라인 강의나 블로그도 종종 찾아보면서 기본적인 AI 개념들을 조금씩 익히고 있던 중이었다.공부만으로는 한계가 있다고 느끼던 시점이라, 언젠가 실무에서 직접 경험해 보고 싶다는 생각이 들 무렵 회사에서 내가 담당하고 있던 서비스에 AI 기반 기능을 도입하려고 담당자를 배정한다는 얘기가 들렸다.기존에 하던 프로젝트가 바쁜 편이었지만, LLM 기반 서비스 설계와 개발을 직접 해볼 수 있는 기회는 이번뿐이라는 생각이 들었다.무엇보다 내가 맡고 있던 서비스 도메인을 가장 잘 이해하고 있.. 2025. 6. 13. 생성형 AI란 무엇인가? AI 기술 흐름과 LLM·SLM까지 정리 생성형 AI란 무엇인가?최근 다양한 산업 분야에서 생성형 AI 기술이 빠르게 확산되고 있다.생성형 AI는 사용자의 입력(프롬프트)을 기반으로 새로운 콘텐츠를 생성하는 인공지능 기술이다.과거 AI가 주로 데이터를 분석하거나 분류하는 데 활용되었다면, 생성형 AI는 새로운 데이터를 만들어내는 것에 집중한다. 생성형 AI에 대한 제대로 된 이해를 위해 아래와 같은 내용을 정리해 보겠다.AI 기술의 발전 흐름생성형 AI의 기본 구조생성형 AI가 주목받는 이유생성형 AI와 LLMLLM과 SLM생성형 AI 종류대표적인 LLM 모델AI 기술의 발전 흐름생성형 AI의 위치를 이해하기 위해 AI 기술의 발전 흐름을 먼저 살펴보자. Artificial Intelligence (AI)AI는 1956년부터 시작된 오래된 연구.. 2025. 6. 10. Docker Hub 및 Private Registry에 이미지 Push하는 방법 도커 이미지를 다른 사람과 공유하거나 배포하려면, 이미지 파일을 Docker Hub 혹은 Private Registry에 Push해야 한다. 이 글에서는 Docker Hub에 이미지를 Push하는 과정과, 기업 내부에서 사용하는 Private Registry 구성과 활용 방법에 대해 다룬다. Docker Hub에 이미지 Push하기Docker Hub에 이미지를 업로드하려면 두 가지 선행 작업이 필요하다.docker logindocker tag Docker Logindocker login명령어 입력 시 사용자 계정과 패스워드를 입력하면 된다. 이때 주의할 점은 도커가 로그인 정보를 base64로 인코딩해 저장한다는 점이다. 즉, 평문은 아니지만 완전히 안전하다고 보기 어렵다. 다른 사람의 컴퓨터에서 작업.. 2025. 6. 8. Docker 이미지 구조와 흐름 이해하기 도커를 다룬다면 이미지에 대한 이해는 필수다. 이미지가 있어야 컨테이너가 동작하고, 이미지를 잘 다뤄야 배포와 테스트가 효율적이기 때문이다. 이 글에서는 Docker 이미지의 구조, 명령어 흐름, 내부 확인 방법까지 하나씩 정리해본다. Docker image컨테이너를 실행하기 위한 인프라 템플릿애플리케이션 실행에 필요한 라이브러리, 설정, 패키지 등을 포함함불변(Read-only) 구조직접 수정은 불가능, 새로운 이미지를 생성하는 방식으로 갱신함Docker 이미지 흐름 : Workflow단계설명관련 명령어1이미지 생성docker build2이미지 확인docker images, docker inspect, docker history3이미지 실행docker run4컨테이너 조작 후 새로운 이미지 생성dock.. 2025. 6. 6. 백엔드 시스템 설계할 때 꼭 고려해야 할 7가지 핵심 요소 (+예시) 백엔드 개발을 시작할 때는 무작정 코드를 작성하기보다, 먼저 시스템을 어떻게 설계할지 고민해야 한다.요구사항이 명확하지 않으면 구현 도중 리팩터링이 빈번해지고, 아키텍처가 부실하면 성능 병목이나 보안 문제가 발생할 수 있다. 이 글에서는 백엔드 시스템을 설계할 때 필수적으로 고려해야 할 항목들을 정리한다.실무뿐 아니라 사이드 프로젝트를 진행할 때도 참고하면 좋다. 1. 요구사항 및 유즈케이스 정의서비스가 제공해야 하는 기능을 정리하고, 각 기능이 어떻게 작동해야 하는지 구체화한다.회원가입, 로그인, 게시글 작성 등 주요 기능 도출각 기능에 대한 입력값, 출력값, 처리 흐름 정리예외 상황(예: 비밀번호 오류, 중복된 ID 등) 정의[예시]기능: 회원가입 - 입력: 이메일, 비밀번호 - 출력: 가입.. 2025. 5. 31. 이전 1 2 3 4 ··· 17 다음 반응형