- 113

[매일매일 CS] HTTPS에 대해

HTTP와 HTTPS의 차이점은 뭔가요? 라고 물으면 대부분은"HTTP에 암호화를 추가한게 HTTPS 입니다" 정도로 대답합니다. 이에 대해서 오늘 HTTP와 HTTPS의 차이에 대해서자세히 분석해보고, 차이를 확실히 알아가려 합니다. HTTP (Hypertext Transfer Protocol)는 웹에서 클라이언트와 서버 간의 통신을 위한 통신 규약입니다. 하지만1. HTTP는 암호화 되지 않는 평문 데이터를 전송하기 때문에, 제 3자가 정보를 조회할 수 있다는 위험이 있습니다.2. HTTP는 중간에 메세지가 변경되도 알 수가 없가 없으며,3. HTTP는 올바른 상대와 통신하고 있는지 알 수 없습니다. 즉 데이터의 기밀성, 데이터 완정성, 통신 상대 인증에서 보안적으로 취약한 문제가 발생할 수 ..

CS/Computer Network 2025.09.16

[매일매일 CS] WAS와 웹 서버의 차이점은 무엇인가요?

웹 서버는 정적 컨텐츠 (HTML,CSS,JS,이미지)를 제공하는 역할을 수행합니다.동적 컨텐츠 요청 시 요청을 WAS로 전달할 수도 있습니다. 대표적인 웹 서버로는 Apache, NginX 등이 있습니다. 반면, 자바 진영에서 WAS(Web Application Server)는 서블릿 컨테이너 기능을 제공하고,동적 컨텐츠를 생성하거나, 애플리케이션 로직을 실행하는 데 특화되어 있습니다. 대표적인 WAS로는 Tomcat이 있습니다. 즉 웹 서버는 정적 컨텐츠 제공에 특화되어 있으며, WAS는 동적인 컨텐츠 생성과 데이터 처리에 특화되어 있습니다. 그럼 WAS도 정적 컨텐츠를 제공할 수 있는데 웹 서버가 따로 필요한 이유는 무엇일까요 ? 🤔 WAS가 너무 많은 역할을 담당하면 과부하될 수 있습니..

CS/Computer Network 2025.09.15

[매일매일 CS] 공유 락 & 배타 락

DBMS에서 트랙잭션을 특별한 제어 없이 병행 수행을 허용하면 데이터의 일관상 & 무결성을 보장하기 어려울 수 있습니다.이때 병행 수행되는 트랜잭션들을 제어하기 위해서 락을 사용할 수 있으며 DBMS에서 락은 크게 공유 락과 배타 락으로 분류할 수 있습니다. 공유 락 ( Shared Lock ): 읽기 락이라고 부르며, 공유 락이 걸린 데이터에 대해서 다른 트랜잭션에서도 공유 락을 획득할 수 있지만, 배타 락은 획득할 수 없습니다. 즉 공유 락을 사용하면, 트랜잭션 내에서 조회한 데이터가 변경되지 않는다는 점을 보장합니다. SELECT * FROM table_name WHERE id = 1 FOR SHARE; 배타 락 ( Exclusive Lock ): 쓰기 락이라고 부르며, 배타 락이 걸린 ..

CS/필수지식 2025.09.08

[매일매일 CS] 얕은 복사와 깊은 복사에 대해

얕은 복사란 ? (Shallow Copy) : 객체 자체만 복사하고, 내부에 포함된 데이터는 그대로 같은 메모리 주소를 공유한다.에에 따라 원본과 복제본이 같은 하위 객체를 가리킴 (한쪽에서 데이터 수정하면 다른쪽도 영향을 받는다) 자바로 간단하게 예를 들어보면 class Address { String city; Address(String city) { this.city = city; } } class Person implements Cloneable { String name; Address address; Person(String name, Address address) { this.name = name; this.address = ..

CS/필수지식 2025.09.05

Nework Application Layer

Cookie HTTP 프로토콜은 stateless (상태 비저장) 이며, 서버는 클라이언트가 이전에 누구였는지 기억하지 못한다. 그래서 쿠키(cookie) 를 사용해서 사용자 상태를 식별하고, 세션을 유지한다. 쿠키는 서버가 생성하여 클라이언(브라우저)에 저장하는 작은 데이터 조각. Cookie 동작 과정 1. 클라이언트 → 서버 요청사용자가 브라우저로 amazon.com 접속 (HTTP request 보냄)2. 서버 → 클라이언트 응답 (쿠키 발급)서버가 유저를 구분하기 위해 ID를 생성 (예: 1678).HTTP response header에 Set-Cookie: 1678 을 넣어 전달.브라우저는 이 값을 로컬에 저장.3. 이후 요청 시 쿠키 전송클라이언트가 다시 Amazon 서버에 요청할 때,..

CS/Computer Network 2025.08.27

Network 기본

컴퓨터 네트워크는 3부분의 기본 프레임워크로 나뉘어서 설명할 수 있다. 1. Network Edge 구성 요소: Application, Hosts (즉, PC, 스마트폰, 서버 등)역할: 네트워크의 "끝단"에서 실제로 데이터를 생성하고 소비하는 주체client→ user (웹브라우저, 앱)server → 웹서버, 게임 서버, 스트리밍 서버 등즉, 네트워크 엣지는 "네트워크를 이용하는 당사자들"이 위치한 부분 2. Network Core 구성 요소: Routers 역할: 네트워크 엣지에서 온 데이터를 빠르고 효율적으로 목적지로 전달패킷 스위칭(packet switching) 기반경로 선택(routing) 알고리즘 사용네트워크 자체는 데이터를 이해하지 않으며, 단지 최적 경로로 전달하는 역할 (고속도..

CS/Computer Network 2025.08.27

Application Layer

OSI (Open Systems Interconnection): 네트워크 통신을 계층화해서 각 단계별로 역할을 나눠놓은 표준 모델 🔹 1계층 – 물리 계층 (Physical Layer) 0과 1의 비트 스트림을 전기적/광학적으로 전송케이블, 허브 등 물리적 장비장비: 허브, 리피터, 전선, 광케이블 🔹 2계층 – 데이터 링크 계층 (Data Link Layer) MAC 주소(랜카드에 박혀있는 주소) 기반으로 프레임 단위 전송같은 네트워크 내 장비들 간 통신오류 감지, 흐름 제어장비: 스위치, 브리지 🔹 3계층 – 네트워크 계층 (Network Layer) IP 주소 기반으로 라우팅목적지까지의 경로 설정패킷 단위 전송프로토콜: IP, ICMP, IGMP장비: 라우터 🔹 4계층 – 전송 계층 (..

CS/Computer Network 2025.08.04

JAVA ..

나는 원래 Python을 주언어로 써왔고, 지금도 Python이 훨씬 편하다.근데 왜 Java를 다시 배우는 걸까? 왜 이렇게 많은 기업들이 Java를 쓸까?Java가 어떤 언어인지, Python과 비교했을 때 어떤 차이가 있는지, 그리고 현재 Java의 현황까지 한 번 정리해보려고 한다. Java란? ☕ 객체지향 프로그래밍 언어 (OOP) 플랫폼 독립적: "Write Once, Run Anywhere" (JVM 덕분에 어디서든 실행 가능)정적 타입(static typing): 변수 선언 시 타입 명시해야 함클래스 기반 구조: 모든 것이 클래스 안에서 이루어짐GC(가비지 컬렉션) 자동 메모리 관리 사용되는 분야 ? 대규모 기업용 시스템 (SI, ERP, 은행, 보험 등)안드로이드 앱 개발서버 백엔드..

Back-end/JAVA 2025.07.17

나혼자 미슐랭 개발일지 #9 – 위시리스트 추가 및 계정 기능 개선, 핫리뷰 기능 개발

📌 Scope ?위시리스트 테이블 및 기능 설계이메일/비밀번호 찾기 기능 구현사용자 폰 번호 추가 (회원정보 확장) -> 이메일 찾기 기능에서 사용하기 위리뷰 좋아요(ReviewLike) 테이블 추가홈화면에 '핫리뷰' 기능 추가 (조회 API, 향후 정렬 방식 고도화 예정) 1. 위시리스트 테이블 및 기능 설계기존 사용자 데이터와 별도로 "가고 싶은 맛집"을 저장할 수 있는 기능이 필요해서 WishList 테이블을 새로 설계하였습니다.이 테이블은 유저와 음식점 사이의 다대다(N:N) 관계를 단순화하여 구성했고, 다음과 같은 필드를 포함하였습니다. 프론트에서는 특정 음식점 상세페이지에서 '위시리스트 담기' 버튼을 통해 추가 가능 ( 기능 개발 중 ) 저장된 리스트는 마이페이지 > ‘내 리스트’ 탭에서 ..