전체 글 111

[매일매일 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) 관계를 단순화하여 구성했고, 다음과 같은 필드를 포함하였습니다. 프론트에서는 특정 음식점 상세페이지에서 '위시리스트 담기' 버튼을 통해 추가 가능 ( 기능 개발 중 ) 저장된 리스트는 마이페이지 > ‘내 리스트’ 탭에서 ..

머신러닝 & 딥러닝 정리

머신러닝과 딥러닝의 정의, 차이점, 그리고 각자 어떤 분야에 적합한지에 대해 정리해보겠습니다. 1. 머신러닝(Machine Learning) ? "컴퓨터가 데이터를 통해 스스로 학습하게 하는 기술"-> 기계야 학습좀 해봐... 머신러닝은 사람이 일일이 프로그램하지 않아도, 데이터를 통해 규칙을 학습하게 하는 기술입니다. 다시 말해, 컴퓨터에게 데이터를 주고, 패턴을 스스로 찾아내어 미래를 예측하게 하는 것. 머신러닝의 핵심 개념: 사람이 모델의 구조나 입력값을 설계대표 알고리즘: 의사결정나무, SVM, KNN, 랜덤포레스트, 선형회귀, 로지스틱 회귀 등특징 추출(Feature Engineering)을 사람이 직접 수행Supervised Learning, Unsupervised Learning, Re..

카테고리 없음 2025.06.26

나혼자 미슐랭 개발일지 #8 – 리뷰 수정 기능 구현 및 별점 구조 개선

📌 scope ?리뷰 수정 페이지(EditReviewPage) 개발음식/분위기/서비스 별점 분리 구조 반영백엔드 리뷰 테이블 구조 수정리뷰 수정 API 및 이미지 업데이트 기능 구현 1. 리뷰 수정 기능 필요성리뷰 작성 이후 사용자가 내용을 수정할 수 있도록 기능을 추가해야 했습니다. 하지만 단순히 평점 하나만 바꾸는 게 아니라, 음식/분위기/서비스 각각의 점수를 분리해서 받고 있었기에, 기존 리뷰 테이블 구조 자체를 바꿔야 했습니다... (설계할 때 한번 더 생각할걸....ㅜ) 2. BE 리뷰 테이블 구조 수정기존에는 평균 평점 rating 필드만 있었지만, 이번 수정으로 다음 3가지 항목들을 추가하였습니다.foodRating: 음식 맛에 대한 점수moodRating: 분위기 점수service..

카테고리 없음 2025.06.03