전체 글 118

[CS] Docker란 - 컨테이너 개념과 기본 사용법

Docker가 뭐고 가상머신(VM)과 뭐가 다른지, Dockerfile과 기본 명령어 예시로 정리했습니다. Docker란애플리케이션을 실행에 필요한 환경(라이브러리, 설정 등)까지 통째로 컨테이너라는 단위로 묶어서, 어떤 서버에서든 똑같이 실행되게 해주는 도구입니다. "내 컴퓨터에서는 되는데요"라는 문제를, 환경 자체를 패키징해서 해결합니다. 가상머신(VM)과 비교가상머신(VM) - Docker 컨테이너구조OS 전체를 가상화호스트 OS의 커널을 공유, 필요한 부분만 격리무게무겁고 느림(수 GB, 분 단위 부팅)가볍고 빠름(수십 MB, 초 단위 시작)실행 단위OS 하나 전체애플리케이션 단위VM은 컴퓨터 하나를 통째로 복제하는 느낌이고, 컨테이너는 "이 프로그램 실행에 필요한 것만" 격리해서 담..

DEV/cs 2026.10.01

[CS] Synchronous vs Asynchronous 비교

동기/비동기, 블로킹/논블로킹 개념을 자바 코드와 함께 헷갈리지 않게 정리했습니다. 동기(Synchronous) - 순서대로, 기다리면서앞의 작업이 끝나야 다음 작업을 시작합니다. 호출한 쪽이 결과가 나올 때까지 멈춰서 기다립니다. javapublic void order() { String result = paymentService.pay(); // 결제 끝날 때까지 여기서 멈춤 System.out.println(result); // 결제가 끝나야 이 줄이 실행됨 sendReceipt(); // 그 다음에야 영수증 전송}pay()가 3초 걸리면, order()는 그 3초 동안 아무것도 못 하고 결과만 기다립니다. 비동기(Async..

카테고리 없음 2026.09.30

[CS] Redis란 - 자료구조와 활용 예시

Redis가 뭐고 어떤 자료구조를 지원하는지, 실제로 어디에 쓰이는지 예시와 함께 정리했습니다. Redis란메모리에 데이터를 저장하는 key-value 기반 NoSQL 저장소입니다. 디스크가 아니라 메모리에서 데이터를 다루기 때문에 일반 DB보다 훨씬 빠르지만, 서버가 꺼지면 데이터가 날아갈 수 있어서 "영구 저장"보다는 "빠른 조회가 필요한 데이터"에 주로 씁니다. Redis가 지원하는 자료구조단순 key-value만 되는 게 아니라, 여러 자료구조를 값으로 저장할 수 있다는 게 Redis의 특징입니다. String - SET user:1 "하늘" (가장 단순한 문자열/숫자)List - RPUSH queue:orders 1001 (순서가 있는 목록, 큐로 활용)Set ..

DEV/cs 2026.09.29

[CS] 애자일(Agile) 방법론이란

애자일 방법론이 뭐고 워터폴과 뭐가 다른지, 스크럼의 실제 진행 방식 예시와 함께 정리했습니다.애자일이란큰 계획을 한 번에 짜고 끝까지 밀고 가는 대신, 짧은 주기로 개발하고, 그때그때 피드백을 반영해서 방향을 조정하는 개발 방법론입니다. "애자일(Agile)"이라는 이름 그대로, 변화에 유연하고 빠르게 대응하는 걸 목표로 합니다. 워터폴과 비교워터폴(Waterfall)애자일(Agile)진행 방식요구사항 → 설계 → 개발 → 테스트를 순서대로, 한 번에짧은 주기(1~4주)를 반복하며 조금씩 완성계획처음에 전체를 다 정해둠매 주기마다 다음 할 일을 다시 정함변경 대응중간에 요구사항이 바뀌면 부담이 큼다음 주기에 바로 반영 가능결과물 확인프로젝트 끝나야 전체를 볼 수 있음매 주기마다 동작하는 결과물이 나옴워..

DEV/cs 2026.09.28

[CS] 오버로딩 vs 오버라이딩 비교

메서드 오버로딩과 오버라이딩의 차이를 자바 코드로 정리했습니다. 오버로딩(Overloading)같은 클래스 안에서, 같은 이름의 메서드를 매개변수만 다르게 여러 개 만드는 것입니다. javaclass Calculator { int add(int a, int b) { return a + b; } double add(double a, double b) { // 매개변수 타입이 다름 return a + b; } int add(int a, int b, int c) { // 매개변수 개수가 다름 return a + b + c; }}메서드 이름은 add로 똑같지만, 매개변수의 타입이나 개수가 다르면 별개의 메서드로 취급됩니다. 어떤 걸 호출할지는..

DEV/cs 2026.09.27

[CS] MVC 패턴이란 - 스프링부트 예시로 정리

MVC 패턴이 뭐고 Model, View, Controller가 각각 무슨 역할을 하는지 스프링부트 예시로 정리했습니다. MVC란애플리케이션을 Model(데이터), View(화면), Controller(중간 처리) 세 가지 역할로 나누는 설계 패턴입니다. 한 클래스가 데이터 처리부터 화면 출력까지 다 하지 않고, 역할별로 책임을 쪼개는 게 핵심입니다.Model: 데이터와 비즈니스 로직 (예: User, UserService, DB 조회 결과)View: 사용자에게 보여지는 화면 (예: Thymeleaf 템플릿, JSON 응답)Controller: 요청을 받아서 Model을 호출하고, 결과를 View에 전달하는 중간 다리 흐름 ① 클라이언트 요청 → Controller② Controller가 Model(Se..

DEV/cs 2026.09.26

[CS] OSI 7계층이란 - 각 계층 역할 정리

OSI 7계층이 뭐고 각 계층이 무슨 역할을 하는지, 웹 요청 예시와 함께 간단히 정리했습니다. OSI 7계층이란네트워크 통신 과정을 7단계로 나눠서 정리한 표준 모델입니다. 데이터가 컴퓨터를 떠나 상대방에게 도착하기까지, 어떤 단계를 거치는지 계층별로 역할을 나눠놓은 것이라고 보면 됩니다.계층 - 이름 - 역할 - 예시 7응용(Application)사용자가 직접 접하는 서비스HTTP, FTP6표현(Presentation)데이터 형식 변환, 암호화SSL/TLS, 인코딩5세션(Session)연결 유지, 세션 관리로그인 세션4전송(Transport)신뢰성 있는 전달, 포트 구분TCP, UDP3네트워크(Network)목적지까지 경로 찾기IP, 라우터2데이터링크(Data Link)같은 네트워크 내 전달MAC 주..

DEV/cs 2026.09.25

[CS] 큐(Queue)란 - 구조와 활용 예시

큐 자료구조가 뭐고, 스택과 뭐가 다른지, 실제로 어디에 쓰이는지 자바 예시와 함께 정리했습니다. 큐란한쪽 끝(뒤)에서 데이터를 넣고, 반대쪽 끝(앞)에서 데이터를 꺼내는 자료구조입니다. 가장 먼저 넣은 데이터가 가장 먼저 나온다는 뜻에서 FIFO(First In First Out) 구조라고 부릅니다. 놀이공원 줄서기를 떠올리면 됩니다. 먼저 줄 선 사람이 먼저 입장합니다.기본 연산offer(또는 enqueue): 뒤쪽에 데이터를 추가poll(또는 dequeue): 앞쪽 데이터를 꺼내면서 제거peek: 앞쪽 데이터를 제거하지 않고 확인만 javaimport java.util.Queue;import java.util.LinkedList;Queue queue = new LinkedList();queue.of..

DEV/cs 2026.09.24

[CS] RESTful API란 - REST의 의미부터 쉽게

REST가 무슨 뜻인지, RESTful API가 어떤 규칙을 지키는지 간단한 코드와 함께 정리했습니다. REST란REpresentational State Transfer의 줄임말로, "자원(사용자, 게시글 등)의 상태를 표현해서 주고받는다"는 뜻입니다.2000년 로이 필딩이 제안한 개념으로, 지금은 웹 API 설계의 표준 방식입니다.핵심 규칙: 주소는 자원, 메서드는 행동 ❌ GET /getUsers❌ POST /deleteUser/1✅ GET /users - 조회✅ POST /users - 생성✅ PUT /users/1 - 수정✅ DELETE /users/1 - 삭제주소에 동사를 넣지 않고, 같은 /users 주소를 GET/POST/PUT/DELETE로만 구분합니다...

DEV/cs 2026.09.23

[CS] Axios 사용법 정리 - 설치부터 인터셉터까지

자바스크립트 HTTP 클라이언트 axios의 기본 사용법을 GET/POST부터 인스턴스, 인터셉터까지 예시와 함께 정리했습니다. axios란브라우저와 Node.js 양쪽에서 쓸 수 있는 HTTP 클라이언트 라이브러리입니다. Promise 기반이라 .then()이나 async/await로 자연스럽게 다룰 수 있고, JSON 자동 파싱·에러 처리·인터셉터 같은 편의 기능이 내장되어 있어서 실무에서 많이 씁니다. 설치 bashnpm install axios javascriptimport axios from "axios"; 기본 사용법: GET, POST, PUT, DELETE javascript// GET - 데이터 조회const res = await axios.get("/api/users");console...

DEV/cs 2026.09.22