전체 글 34

[데이터베이스 모델링] DB 어떻게 설계하나 - 개발 경험

[ 개요 ]: 수업시간 강사님이 DB에 대한 기본적인 개념을 설명해주신 뒤 dpPrime (https://dprime.kr/) 이라는 웹 사이트를 보여주시면서 이제 직접 데이터베이스를 설계해 보라고 과제를 주셨다. 우선 ERD Cloud를 켠 뒤 무작정 구조를 만들었다. dpPrime이라는 웹 사이트를 보면 알 수 있듯이 대표적인 블로그 형태를 띄고 있는 커뮤니티 사이트였다.   나는 일단 눈에 보이는 Entity들을 넣었다. 우선적으로 커뮤니티가 다양한 주제의 Category를 가지고 있기 때문에 Category테이블과 글 데이터를 갖고 있는 Post테이블 그리고 사용자에 대한 User데이터로 시작했다.하지만 무작정 만들었던 구조는 설계의 긴 여정의 하나에 불과했다.나는 여러 DB를 설계해보면서 깨달은..

DataBase 2025.03.11

[네트워크]소켓과 HTTP이란? - 네트워크 지식

네트워크 프로그래밍을 공부하면서 배운 개념이 2가지가 있었다. 바로 소켓과 HTTP이다.개요 : 네트워크를 공부하면서 엄청 자주 들었었는데 "HTTP로 데이터를 주고 받는다" 또는 "소켓으로 연결하여 통신한다" 정도의 얕은 이해로만 알고 있었다. 하지만 이번에 직접 소켓과 HTTP로 통신하고 직접 request, response를구현해보면서 그 개념을 깊에 이해할 수 있었다.나의 이해를 한 번 공유해보려고 한다.    배경 : 쉬운 네트워크의 이해, 네트워크 == 우편?내가 이해한 네트워크는 아주 예전에 사용하던 통신 방법인 우편과 똑같다.1. A가 B에게 편지을 보내려면 A와 B는 각자의 우체통이 필요하다.2. 각자의 우체통이 있다고 하면 A는 A의 우체통에 보낼 편지를 넣으면 주소에 따라 우체부가 B..

Network 2025.02.23

[디자인 패턴] Observer 패턴이란? - 개발 경험

Observer 패턴이란 일대다 관계에서 주로 사용되며 객체의 상태 변화를 다른 객체들에 알릴 때 사용되는 디자인 패턴이다. 소켓에 대해 프로그래밍을 하던 도중 디자인 패턴이라는 개념을 접하게 되었다.내가 개발하던 프로그램은 "소켓을 이용한 클라이언트 간 메세지 송수신 프로그램"이었다. 어떻게 클라이언트의 메세지를 보내고 받을 수 있을까?이 때 사용했던 디자인 패턴이  바로 옵저버 패턴였다.   옵저버 패턴의 구조는 크게 3가지로 구성되어있다.1. 이벤트를 발생시키는 객체인 주체(Subject)2. 주체의 상태를 변화하고 감지하고 반응하는 객체인 옵저버(Observer)3. 옵저버의 행동을 담당하는 액션(Action)  그렇다면 클라이언트가 메세지 보내는 과정을 옵저버 패턴에 적용하면?1. 클라이언트가 ..

카테고리 없음 2025.02.16

[Spring] 시작, Spring이란? - 개발 지식

🌱 스프링(Spring)이란?자바(Java) 언어 기반의 웹 프레임워크입니다.쉽게 말하면, 자바로 웹 애플리케이션을 쉽게 만들 수 있게 도와주는 틀을 말합니다.스프링은 자바의 큰 특징인 객체 지향 프로그래밍(OOP)의 장점을 잘 살려냈다는 것이 스프링의 장점이자 매력입니다. ❓왜 스프링이 만들어졌을까?과거: EJB의 등장옛날에는 자바로 웹 서비스를 만들 때 EJB(Enterprise Java Beans)라는 기술을 많이 사용했습니다.이 기술은 기능은 좋았지만,너무 복잡하고설정이 어렵고개발 속도도 느렸습니다.변화: "POJO"로 돌아가자!그래서 개발자들 사이에서 "순수한 자바 객체(POJO: Plain Old Java Object)로 돌아가자!"는 움직임이 생겼고이 흐름 속에서 나온 것이 바로 스프링입니..

Spring 2024.10.02