운영체제 OS (Operating System)
컴퓨터의 하드웨어와 소프트웨어 자원을 관리하고, 사용자가 컴퓨터를 편리하게 사용할 수 있도록 하는 시스템 소프트웨어
- 하드 웨어 : 컴퓨터의 물리적 부품 ex) CPU, 메모리, 키보드 등
- 소프트 웨어 : 하드웨어를 작동시키고 사용자가 특정 작업을 할 수 있도록 하는 명령어들의 집합 ex) 프로그램, 응용 프로그램
개발자들이 Mac OS를 선호하는 이유
- 서버 설정 및 로컬 개발 환경 구축이 용이
- ios 개발이 가능
- xCode, simulator, swift(애플용 앱 언어) 등 앱 개발 시 Mac에서만 가능
- Unix 기반으로 만들어져 리눅스 환경에서 높은 호환성을 가짐
모바일 개발의 패러다임. (네이티브 앱, 하이브리드 앱, 프로그레시브 웹 앱)
네이티브 앱 : 앱 최적의 성능, 퍼포먼스
네이티브 앱은 iOS(Swift)와 Android(Java 또는 Kotlin)와 같이 특정 운영 체제의 고유 언어 및 플랫폼 도구로 개발된 애플리케이션
- 장점: 각 OS에 최적화되어 구동 속도가 빠르고 안정적, 디바이스의 모든 기능(카메라, GPS, 센서 등)에 직접 접근하여 활용 가능. 높은 사양의 그래픽을 구현할 수 있어 화려한 시각 효과나 고성능을 요구하는 게임에 적합
- 단점: iOS와 Android용 코드를 각각 별도로 개발해야 하므로 개발 비용과 시간이 많이 소요됩니다. 또한, 수정 사항이 발생할 경우 앱 마켓의 심사를 거쳐야만 업데이트가 가능합니다.
하이브리드 앱 : 단일 코드 베이스의 효율성
하이브리드 앱은 네이티브 앱의 셸(컨테이너) 내부에 웹뷰(Web View)를 띄워 웹 기술(HTML, CSS, JavaScript)로 제작된 콘텐츠를 보여주는 방식
- 장점: 하나의 코드베이스로 여러 플랫폼에 배포할 수 있어 개발 비용과 시간을 절약 가능함. 웹 기술 기반이지만 네이티브 API를 사용하여 디바이스의 일부 기능에 접근 가능
- 단점: 네이티브 앱 대비 성능이 떨어지고, 브라우저의 성능에 영향을 받기 때문에 앱 구동 속도가 저하될 수 있습니다. 디자인의 자유도가 네이티브 앱보다 낮을 수 있음
프로그레시브 웹 앱 : 설치 없는 앱 경험
프로그레시브 웹 앱(Progressive Web App, PWA)은 웹 기술로 개발되었지만, 마치 네이티브 앱처럼 동작하는 기능(예: 오프라인 기능, 푸시 알림, 홈 화면 아이콘 추가 등)을 제공하는 웹 애플리케이션입니다.
- 장점: 별도의 설치 과정이나 앱 스토어 심사가 필요 없습니다. 웹의 특성상 검색 엔진 노출에 유리하며, 모바일 스토리지와 메모리 사용량이 적습니다.
- 단점: 네이티브 앱 대비 기능적 제약이 존재하며, 브라우저 종속성으로 인해 배터리 소모량이 더 많을 수 있습니다.
정리 포인트
- 네이티브 앱은 성능과 안정성이 뛰어나지만 비용과 시간이 많이 든다.
- 하이브리드 앱은 비교적 효율적인 개발이 가능하지만 성능은 네이티브보다 떨어진다.
- PWA는 설치 없이 웹에서 접근 가능하고 유지보수가 가장 쉽지만 성능이 제한적이다.
시간 복잡도, 공간 복잡도
시간 복잡도와 공간 복잡도는 알고리즘의 효율성을 평가하는 핵심 지표.
n2, log 등으로 수의 양으로 파악, 코드를 읽을 때 반복문 한번에 n, if 문 한번에 log 등등 복잡도가 계산되어 출력됩니다.
이러한 복잡도 분석의 본질은 특정 하드웨어에서의 미세한 성능 차이를 넘어, 대규모 서비스에서 예측 불가능한 성능 저하를 막고, 알고리즘의 확장 가능성을 평가하는 데 있습니다.
- 시간 복잡도
- 알고리즘 실행에 필요한 시간의 양을 뜻한다.
- 빅-오 표기법을 사용하여 나타냄
- 공간 복잡도
- 알고리즘 실행에 필요한 메모리 공간의 양
- 빅-오 표기법을 사용하여 나타냄

알고리즘, 실무에서는 주로 어디에서 활용 되는 가?
- 데이터베이스 조회
- 인증 인가
- 토큰 검증
관계형 데이터 베이스 비관계형 데이터 베이스
데이터베이스는 크게 관계형 데이터베이스(RDB)와 비관계형 데이터베이스(NoSQL)로 구분됩니다.
관계형 데이터베이스 (RDB) ex) MySQL, PostgreSQL, Oracle Database
테이블 기반으로 데이터를 저장하며, 미리 정의된 엄격한 스키마를 요구합니다. SQL(Structured Query Language)을 사용하여 데이터를 관리하며, 데이터 중복을 최소화합니다. 금융 거래, 전자 상거래처럼 데이터의 일관성이 절대적으로 중요한 시스템에 적합합니다. 그러나 수평적 확장이 복잡하고 비용이 많이 든다는 단점이 있습니다.

비관계형 데이터베이스 (NoSQL) ex) MongoDB
키-값, 문서 그래프 등 다양한 데이터 모델을 제공하며, 비정형 데이터를 효율적으로 저장합니다. 수평적 확장이 용이하여 대용량 데이터 및 높은 트래픽을 처리하는 데 강점이 있습니다. 데이터 구조가 자주 변경되는 환경에는 적합하지만, 관계형 DB에 비해 데이터 일관성이 낮게 보장될 수 있습니다.
* 스키마 : 데이터베이스에서 데이터의 구조와 제약 조건을 정의하는 명세입니다. 쉽게 말해, 데이터베이스의 청사진이나 설계도와 같은 역할을 합니다. 데이터베이스에 저장될 데이터의 형태, 자료형, 관계를 정의합니다.
{
id : 1,
name : '이민혁',
age : 29,
},
{
id : 2,
name : '이민지',
age : 25,
}
궁금증. 그러면 데이터 베이스를 여러 개 놓을 수도 있나? O
대용량 트래픽을 감당해야 하는 서비스의 경우, 데이터베이스를 여러 개 설정하는 경우가 많다.
데이터 베이스를 설계한다 ? ERD
ERD는 데이터베이스의 구조를 시각적으로 표현하는 모델로 , 개발자와 이해관계자 간의 의사소통을 돕고, 설계 오류를 최소화하며, 효율적인 데이터 관리를 가능하게 합니다.
ERD는 세 가지 핵심 구성 요소로 이루어집니다.
- 개체(Entity): 현실 세계의 사물이나 개념으로, 데이터베이스의 테이블에 해당합니다. 개체는 유일한 식별자에 의해 구별되며, 두 개 이상의 인스턴스 집합으로 구성됩니다.
- 속성(Attribute): 개체가 가지는 특성으로, 테이블의 컬럼에 해당합니다. 예를 들어, '회원'이라는 개체에는 '아이디', '이메일', '생년월일'과 같은 속성들이 있습니다.
- 관계(Relationship): 개체들 간의 연관성으로, 1:1, 1:N, M:N 등으로 표현되는 수적 관계(Cardinality)를 통해 정의됩니다.
ex) 게시물 > 게시

한명의 고객이 여러 개의 고객 상품 1 : N을 가지고 상품 하나는 여러 명의 고객을 가질 수 있다 1: N
백엔드 To 프론트엔드, API 명세서 Swagger?
보통 백엔드 개발자가 API 규격 문서를 작성해준다. 제공 방식은 Swagger라는 프레임 워크를 사용하기도 하고 엑셀 파일로 정리해서 주기도 한다.
Swagger는 RESTful API를 설계, 구축, 문서화 및 테스트하는 데 사용되는 오픈소스 프레임워크로써 Swagger는 API 문서 작성의 번거로움을 줄이고 개발자 간 협업을 돕습니다.
깃허브 Pull Request와 Issue의 차이
Issue는 프로젝트 내에서 논의가 필요한 문제나 작업 항목을 관리하는 기능입니다. 실무에서는 팀장이 Issue를 기재하고 팀원들이 자신의 작업 영역으로 가지고 가 작업합니다.
Pull Request는 자신의 작업 내용을 다른 사람에게 공유하고 코드 리뷰를 요청하며, 변경 사항을 원본 저장소에 병합(merge)할 수 있도록 제안합니다.
AI 활용 시 영어로 + 퍼블렉 시티
ai Gpt 등이 크롤링 기반이기 때문에, 코딩 작업 시 한글로 물어보는 것보다 영어로 물어보는 게 더 결과가 좋습니다. (더 많은 검색 결과)
퍼블렉 시티는 실시간 정보를 기반으로 하기 때문에 사용성이 좋습니다.
'기타' 카테고리의 다른 글
| Next.js 환경변수 설정, GitLab Runner 등록 (1) | 2026.04.11 |
|---|---|
| 데이터베이스 전용 툴과 서버 운영 개념 정리 (0) | 2025.09.21 |
| 프로그래밍 기본 개념 (스레드, 라이브러리, JWT, HTTP...) (5) | 2025.08.10 |
| 파이썬 기초 문법 2 (변수명 규칙, 연산자, 런타임 에러, 컴파일 에러) (0) | 2025.08.10 |
| 파이썬 기초 문법과 메모리 개념 정리 (자료형, 함수, 조건문) (1) | 2025.08.03 |