전체 글 45

[Object] Chapter07. 객체 분해

안녕하세요 개발자 문문입니다. 오늘은 객체 분해에 대해 공부해보겠습니다. 서론추상화 : 불필요한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업추상화 방법은 한 번에 다뤄야 하는 문제의 크기를 줄이는 것이다.큰 문제를 해결 가능한 작은 문제로 나누는 작업을 분해(decomposition)이라고 한다. 프로시저 추상화와 데이터 추상화프로시저 추상화 : 소프트웨어가 무엇을 해야하는지를 추상화한다.데이터 추상화 : 소프트웨어가 무엇을 알아야 하는지를 추상화한다.시스템을 분해하는 방법을 결정하려면 프로시저 추상화를 중심으로 할 것인지, 데이터 추상화를 중심으로 할 것인지를 결정해야 한다.프로시저 추상화를 중심으로 시스템을 분해하기로 결정했다면 기능 분해(functional decomposition..

Object 2025.11.03

508 포텐데이 후기

올해 8월 1일부터 10일까지 비사이드에서 508 AI 포텐데이가 진행되었습니다.저는 이전 직장에서 백엔드 개발자로서 성장의 한계를 느껴 퇴사를 했는데요, 퇴사 직후 현재 저의 실력이 어느정도인지 확인하고 싶고, 개발에 몰두를 해보고 싶어서 포텐데이에 참여했습니다. 기간은 10일이고, Naver Cloud Platform의 클라우드 서비스를 사용해서 AI 서비스 산출물을 제출하고 심사위원분들과 참여자들의 투표를 통해 순위가 결정되는 방식이었습니다. 해커톤 시작전에 팀 빌딩 기간이 있는데요, 슬랙에서 자신의 비사이드 프로필과 자기소개를 작성해서 올리고 본인이 원하는 팀을 만들거나, 다른 분께 팀 제의를 받아서 팀이 구성됩니다. 저는 운이 좋게도 기획자 분이 연락을 주셔서 너무 좋은 팀원분들과 함께 할 수 ..

회고록 2025.10.10

[면접준비] JavaScript

1. 데이터 타입- 원시 타입(Primitive)string, number, boolean, null, undefined, symbol, bigint 값 자체가 저장되고 불변(immutable)함 - 참조 타입(Reference)object, array, function 등 참조(주소)가 저장되며 가변(mutable)함 - typeof 연산자변수의 데이터 타입을 문자열로 변환 - Truthy / Falsy 값조건문에서 참/거짓으로 평가되는 값.Falsy → false, 0, '', null, undefined, NaN(나머지는 전부 truthy) 2. 연산자- 동등 비교(==) : 타입 변환 후 값 비교- 일치 비교(===) : 타입 변환 없이 값 비교- Nullish 병합(??) : 좌항이 null 또..

면접준비 2025.09.21

[면접준비] WEB

1. 브라우저에서 URL 치면 발생하는 일- 브라우저는 URL을 분석하고 DNS를 통해 IP 주소를 조회한 뒤, 해당 서버와 TCP 연결을 맺고 HTTP/HTTPS 요청을 보냅니다. 서버는 요청을 처리해 응답을 반환하고, 브라우저는 응답을 랜더링하여 화면에 표시합니다. 2. 쿠키, 세션- 쿠키는 클라이언트 로컬에 저장되는 작은 데이터로, 브라우저가 서버에 자동으로 전송하여 상태를 유지합니다.- 세션은 서버에 저장되는 사용자 상태 정보로, 클라이언트는 세션 ID만 쿠키나 URL에 저장해 식별합니다. 3. 쿠키 동작방식- 서버가 응답 시 Set-Cookie 헤더로 쿠키를 클라이언트에 저장하게 하고, 이후 같은 도메인 요청 시 브라우저가 자동으로 쿠키를 포함시켜 서버에 전송합니다. 4. 세션 동작방식- 서버가..

면접준비 2025.09.17

[면접준비] 네트워크

1. OSI 7계층- OSI 7계층을 네트워크 통신을 계층별로 나눈 모델로, 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성되어 있으며, 각 계층을 독립적으로 기능을 수행하고 상위 계층에 서비스를 제공합니다. 2. 라우터와 스위치 차이- 스위치는 같은 네트워크 내 장치 간 프레임 전달을 담당하며 MAC 주소 기반으로 동작합니다.- 라우터는 서로 다른 네트워크 간 패킷 전달을 담당하며 IP 주소 기반으로 동작합니다. 3. 라우터와 게이트웨이 차이- 라우터는 네트워크 간 경로를 결정하는 장치이고, 게이트웨이는 프로토콜이나 데이터 형식이 다른 네트워크를 연결할 때 변환 기능까지 수행합니다. 4. 게이트웨이- 게이트웨이는 서로 다른 네트워크 환경이나 프로..

면접준비 2025.09.17

[면접준비] DB

1. DBMS란?- DBMS는 데이터를 구조화하여 저장, 조회, 수정, 삭제 등을 관리하고, 데이터 무결성과 동시성, 보안을 보장하는 소프트웨어입니다. 2. DBMS 구조- DBMS는 저장소(Storage), 질의 처리기(Query Processor), 트랜재션 관리자(Transaction Manager), 로그/복구 관리자, 사용자 인터페이스 등으로 구성되며, 사용자의 요청을 처리하고 데이터를 안전하게 관리합니다. 3. 질의처리기 작동 순서- 사용자가 SQL을 입력하면, 파서(Parser) → 옵티마이저(Optimizer) → 실행 계획 생성 → 실행(Execution Engine) → 결과 반환 순으로 처리됩니다. 4. 옵티마이저- 옵티마이저는 SQL 실행 계획을 생성할 때 여러 가능한 접근 경로 중..

면접준비 2025.09.17

[면접준비] Spring

1. Spring 이란?- Spring은 자바 기반의 경량 애플리케이션 프레임워크로, IoC와 DI를 활용하여 객체 간 결합도를 낮추고 테스트와 유지보수를 쉽게 할 수 있게 해주는 프레임워크입니다. 2. IoC란?- IoC는 제어의 역전으로, 객체의 생성과 의존성 관리를 개발자가 직접 하지 않고, 스프링 컨테이너가 제어권을 가져 관리하는 설계 원칙입니다. 3. DI란?- DI는 객체가 필요로 하는 의존 객체를 외부에서 주입해 주는 방식으로, IoC를 구현하는 핵심 기술 중 하나이며, 이를 통해 객체 간 결합도를 낮출 수 있습니다. 4. 디스패처 서블릿(Dispatcher Servlet) 이란?- 스프링 MVC에서 모든 클라이언트 요청을 중앙에서 받아 처리하는 프론트 컨트롤러로, 요청을 적절한 컨트롤러로 ..

면접준비 2025.09.17

[면접준비] JAVA

1. 객체지향프로그래밍이란?(OOP)- 프로그램을 객체단위로 설계하고, 데이터와 기능을 묶어 캡슐화하며, 객체간 상호작용으로 문제를 해결하는 프로그래밍 방식입니다. 2. 객체지향 프로그래밍 4가지 특징- 객체지향의 4가지 특징으로는 캡슐화, 상속, 다형성, 추상화가 있습니다.- 캡슐화는 데이터와 메서드를 하나로 묶고, 접근을 제한시키는 것이고 상속은 기존 클래스의 기능을 재사용, 확장하는 것을 의미합니다.- 다형성은 하나의 메서드, 연산이 다양한 형태로 동작하는 것을 의미하고 추상화는 불필요한 구현을 숨기고 핵심 기능만 노출 시키는 것을 의미합니다. 3. SOLID-SOLID는 객체 지향 설계원칙으로 단일 책임 원칙, 개방-페쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙을 의미..

면접준비 2025.09.16

[면접준비] 운영체제

1. 운영체제란?- 운영체제는 하드웨어와 사용자를 연결해주는 소프트웨어입니다. 자원을 효츌적으로 관리하고 프로세스, 파일 시스템, 네트워크 등을 제어합니다. 2. 실행 파일 생성 과정- 실행 파일 생성 과정은 소스코드를 컴파일하고 이를 라이브러리와 연결하여 실행 가능한 파일로 생성합니다. 3. 프로그램 실행 과정- 프로그램 실행 과정은 실행 파일을 메모리에 적재하고 프로세스를 생성합니다. 코드, 데이터, 스택, 힙 공간을 확보하고 PC로부터 명령어 실행을 시작합니다. 4. 캐시란?- 캐시는 CPU의 처리속도와 주 기억장치의 접근 속도 차이를 줄이기 위한 고속 메모리입니다. 5. 메모리 영역- 메모리 영역은 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 구성되어있습니다.- 코드 영역에는 소스 코드가..

면접준비 2025.09.16

이중화된 서버의 로드밸런싱(Apache)

안녕하세요 개발자 문문입니다.오늘은 대용량 트래픽 처리를 하기위해 이중화된 서버를 로드밸런싱 처리하는 과정을 살펴보겠습니다. 앞의 장들에서 개발했던 프로젝트들이 분배 서비스, 발송 서비스로 프로젝트가 분리되어있으며, 이중화된 서버에 배치되어있습니다.서버가 이중화 되었기 때문에 들어온 요청을 어느 서버에 보낼지 처리하는 과정이 필요한데요, 이 과정을 로드밸런싱이라고 합니다. 로드밸런싱 처리를 하기 위해 server1에 Apache를 설치합니다. sudo dnf install httpd –y 설치가 완료되었으면 로드밸런싱 설정 파일을 추가해줍니다.//경로 이동cd /etc/httpd/conf.d//로드밸런스 설정파일 생성vi loadbalancer.conf loadbalancer.conf에 아래의 내용을..