공지
[개발] 개발 지식 입문서
Dachaes
2025. 4. 12. 15:44
728x90
반응형
728x90
개발 지식 글 모아보기
[언어]
HTML
- [시맨틱 태그] 웹 페이지 구조의 의미를 담다.
- [Canvas 태그] 그래픽을 위한 HTML의 도화지
CSS
- [Cascading] CSS에서 스타일 우선순위를 결정하는 규칙
JavaScript
1. 변수와 스코프 관련
- [var, let, const] 자바스크립트 변수 선언의 차이점과 쓰임새
- [TDZ] 선언했는데 왜 에러가 날까?
- [호이스팅] 변수 선언의 비밀
- [스코프] 변수는 어디까지 살아있을까?
- [Closure] 자바스크립트의 숨겨진 강력한 기능
2. 실행 흐름과 비동기 처리
- [실행 컨텍스트] 자바스크립트는 이렇게 코드를 실행한다.
- [Event Loop] 자바스크립트는 어떻게 비동기적으로 동작할까?
- [Promise] 비동기 처리의 핵심 개념
- [async와 await] 비동기 코드를 동기처럼 쓰는 방법
3. 함수와 이벤트 처리
- [일반 함수와 화살표 함수] 자바스크립트 함수, 왜 두 가지 문법이 존재할까?
- [콜백 함수] 자바스크립트 함수의 함수스러운 사용법
- [이벤트 리스너] 사용자와 코드 사이를 잇는 연결고리
- [버블링과 캡처링] 자바스크립트의 이벤트가 흐르는 길
- [이벤트 객체] 클릭 이벤트의 진짜 주인공은 누구인가?
- [handler] 사용자 행동을 연결하는 함수
4. 파일 처리
- [Blob] 브라우저에서 파일 데이터를 다루는 핵심 도구
5. 자료 구조
- [Object] 자바스크립트의 객체
- [객체 리터럴] 중괄호 하나로 끝내는 객체 선언
- [Map] 객체보다 더 똑똑한 자료구조
- [Set] 중복 없는 데이터 관리하기
- [Hash] 해시 기반 자료구조
6. 배열과 객체 다루기
- [find()] 조건에 맞는 첫 번째 값을 찾는 방법
- [forEach()] 배열을 반복하면서 작업을 수행하는 방법
- [map()] 배열 요소 변형의 핵심 메서드 완전 정복
- [filter()] 조건에 맞는 요소를 필터링하기
- [includes()] 배열에 특정값이 존재하는지 확인하는 방법
- [some()] 배열 중 하나라도 조건을 만족한다면?
- [every()] 배열 모든 요소가 조건을 만족하는지 확인하는 방법
- [reduce()] 단순 합계부터 복잡한 누적까지
- [sort()] 배열 정렬 완전 정복 – 숫자, 문자열, 객체까지
- [slice()] 배열 일부를 잘라 새로운 배열 만들기
- [splice()] 배열을 자유자재로 자르고 붙이는 강력한 메서드
- [flat()] 중첩 배열을 한 방에 펼치는 방법
TypeScript
- [TypeScript] 자바스크립트와의 차이점과 도입 이유
Java
-
C++
- [Class] 객체지향 프로그래밍의 핵심
- [Class의 상속] 재사용성과 확장성을 높이는 객체지향의 핵심
- [Class와 Struct] 클래스와 구조체의 차이
[프레임워크과 라이브러리]
Vue.js
- [Vue Lifecycle] Vue 컴포넌트의 일생을 따라가보자]
React
1. 컴포넌트 구조 및 작성 방식
- [React Lifecycle] 컴포넌트는 언제 태어나고 사라질까?
- [클래스 컴포넌트와 함수 컴포넌트] 리액트의 컴포넌트
- [key] 리액트에서 key로 index를 쓰면 안 되는 이유
2. React Hooks
- [React Hooks] useState부터 커스텀 훅까지
- [React Custom Hooks] 로직을 재사용하는 가장 React스러운 방법
- [Advanced React Hooks] useReducer부터 useImperativeHandle까지
- [useState] 리액트에서 상태를 다루는 기본 훅
- [useRef] 리액트의 숨은 만능 도구
- [useEffect] 리액트 컴포넌트의 생명주기를 제어하는 훅
- [useCallback] 불필요한 리렌더링 줄이기
- [useContext] 전역 상태를 쉽게 가져오고 싶다면?
- [useContext] 전역 상태 공유를 간단하게 구현하는 방법
3. 파일 처리
- [xlsx 라이브러리] 리액트에서 Excel 파일 읽고, 수정하고, 다운로드하기
Next.js
- [Next.js] 넥스트로 배우는 현대적인 웹 개발
- [Routing] 폴더 구조로 라우팅을 끝낸다고?
Redux
- [Redux] React 상태 관리를 위한 예측 가능한 컨테이너
- [Redux Toolkit] 상태 관리를 효율적으로 설계하는 법
ORM
- [ORM] 객체와 데이터베이스의 간극을 메우는 기술
JPA
- [JPA] 객체와 데이터베이스를 잇는 다리
- [JPA 관계 매핑] 객체 간 관계를 데이터베이스에 자연스럽게 표현하는 법
- [JPA 생명 주기] Cascade와 OrphanRemoval 완전 이해하기
Spring
-
[데이터베이스]
Database
1. 구조 및 모델링
- [RDBMS와 NoSQL] 무엇을 선택해야 할까?
- [Primary Key] Primary Key가 없다면? 데이터 무결성과 성능에 미치는 영향
2. 보안 / 암호화
- [At-Rest 암호화] 저장된 데이터 보호하기
- [In-Trasit 암호화] 전송 중인 데이터 보호하기
[어플리케이션]
App Architecture
1. 앱 구조 & 개발 방식
- [웹앱] 웹 애플리케이션의 개념과 특징
- [PWA] 웹을 앱처럼 만드는 기술
- [네이티브 앱] 모바일 개발의 정석
- [하이브리드 앱] 웹앱과 네이티브 앱의 장점을 결합한 앱 개발 방식
[개발 도구 및 빌드 시스템]
Build Tools
1. 코드 실행 및 변환 개념
- [컴파일러] 사람이 쓴 코드를 기계어로 바꾸는 번역가
- [인터프리터] 한 줄씩 읽고 실행하는 언어의 실행자
- [트랜스파일러] 자바스크립트 세계의 번역가
2. 프론트엔드 빌드 도구
- [모듈 번들러] 프론트엔드 필수 도구의 개념과 대표 번들러 비교
3. 개발 지원 도구
[운영체제]
-
[네트워크]
1. 네트워크 기본 구조 이해
- [OSI 7계층과 TCP/IP 4계층] 네트워크의 설계도
- [프로토콜] 컴퓨터 세상에서의 약속과 규칙
- [IP 주소] 인터넷 세상의 논리적 주소
- [MAC 주소] 네트워크 장비의 물리적 지문
- [TCP와 UDP] 데이터 전송의 두 축
- [DNS] 도메인 이름을 IP 주소로 바꿔주는 인터넷의 전화번호부
- [ARP와 RARP] IP와 MAC 주소를 연결하는 숨은 조력자들
- [GARP] 질문 없는 ARP, 나를 먼저 알리는 네트워크의 자기소개서
- [프록시 서버] 인터넷의 중간자, 프록시 서버란 무엇인가?
2. 웹 통신 (HTTP 중심)
- [HTTP와 HTTPS] 보안이 필요한 이유와 프로토콜의 차이
- [HTTP 메소드] 웹의 동작 방식을 이해하는 첫걸음
- [HTTP 상태 코드] 웹 통신의 응답 언어를 이해하기
- [RESTful API] 웹 서비스를 설계하는 가장 보편적인 방식
- [Fetch와 Axios] HTTP 요청을 위한 두 가지 방식 비교
3. 실시간 통신
- [WebSocket] 채팅부터 알림까지, 실시간 웹의 기반
- [WebRTC] 화상회의·음성채팅을 위한 웹 기반 실시간 기술
- [WebSocket vs WebRTC] 실시간 통신, 어떤 기술을 써야 할까?
[보안]
1. 브라우저 보안 정책
- [SOP와 CORS] 브라우저는 왜 내 API를 막을까?
- [CSRF와 XSS] 웹 보안의 핵심
- [세션 하이재킹] 사용자의 신뢰를 가로채는 공격
- [세션 쿠키] 로그인 보안을 위한 세션 쿠키
2. 네트워크 보안
- [ARP 스푸핑 공격] IP와 MAC을 위조해 트래픽을 탈취하다.
3. 콘텐츠 보호 보안
- [DRM] 디지털 콘텐츠의 보안을 책임지는 기술
4. 인증과 인가 (Authentication & Authorization)
- [OAuth] 로그인 없이 로그인하기
- [OAuth] OAuth는 인증 기술이 아니다?
- [OpenID Connect] OAuth로는 부족했던 인증을 해결하다.
- [소셜 로그인] 프론트엔드 관점에서의 로그인 구현
- [Access Token과 Refresh Token] 개발자를 위한 인증 토큰 설명서
5. 토큰 기반 인증
- [JWT] 인증 시스템의 핵심
- [JWT의 구조] Header, Payload, Signature의 역할과 의미
[브라우저]
1. 브라우저의 전체 동작 흐름
- [브라우저 동작 원리] 주소창에 URL을 입력하면 무슨 일이 벌어질까?
- [브라우저 렌더링 과정] HTML이 화면에 보이기까지
2. 브라우저 내 기능과 API
- [웹 저장소] localStorage, sessionStorage, Cookie 의 차이와 사용법
- [MutationObserver] DOM 변화를 감지하는 방법
- [Intersection Observer] 스크롤 감지의 혁신
3. 호환성 및 최적화
- [크로스 브라우징] 모든 브라우저에서 깨지지 않는 웹 만들기
- [검색 엔진 최적화 (SEO)] 검색에 잘 노출되는 사이트란?
[성능 최적화]
1. 렌더링 최적화
2. 리소스 로딩 최적화
- [Lazy Loading] 성능과 사용자 경험을 모두 잡는 웹 최적화 전략
- [코드 스플리팅] 필요한 코드만 불러오는 기술
[클라우드 컴퓨팅]
- [IaaS, PaaS, SaaS] 클라우드 서비스 모델 한눈에 이해하기
[소프트웨어 아키텍처]
1. 렌더링/페이지 구조 관련
- [View] UI를 다루는 구성 요소
- [SPA] 하나의 HTML로 모든 페이지를 만든다?
- [SSG와 ISR] 정적 사이트도 이제 유연하게 바뀐다.
- [CSR과 SSR] 렌더링 방식의 차이와 선택 기준
2. 책임 분리/시스템 분산
- [데이터 정렬] 프론트엔드에서 할까, 백엔드에서 할까?
- [파이프-필터 아키텍처] 데이터 흐름을 분리하고 모듈화하는 방법
- [미들웨어] 시스템의 중간 관리자
- [써드 파티] 외부 기술과의 협업, 어디까지 이해하고 있나요?
3. 설계 패턴과 아키텍처 전략
- [GOF 디자인 패턴] 좋은 소프트웨어 설계는 이렇게 시작된다.
- [OOP] 객체 지향 프로그래밍이란 무엇인가?
- [UML] 복잡한 시스템을 시각화하는 언어
- [숫자 코드] 숫자에 의미를 부여하는 설계 전략
- [디지털 트윈] 현실을 디지털로 복제하는 기술
[소프트웨어 개발 방법론]
1. 개발 프로세스 방법론
- [워터폴과 애자일] 개발 프로젝트에 맞는 방법론은?
- [XP] 개발자라면 알아야 할 극한 프로그래밍
- [요구사항 명세 기법] 프로젝트 성공을 좌우하는 명확한 요구사항 작성법
2. 개발 기술/기법 중심 방법론
- [TDD] 기능 구현보다 테스트가 먼저다!
- [럼바우 분석 기법] 객체지향 분석의 고전, 럼바우 OMT 기법 총정리
- [CASE] 개발 생산성을 높이는 자동화 도구
3. 프로그래밍 패러다임
- [SOLID] 유지보수성과 확장성을 높이는 객체지향 설계 원칙
[인공지능]
1. 머신러닝
- [LLM] 대규모 언어 모델이 세상을 바꾸는 방법
[업무 방식과 생산성]
- [스마트 워크] 시간과 장소를 뛰어넘는 새로운 일의 방식
반응형
728x90
반응형