JavaScript 코딩테스트 대비 정리 (레벨 1)
·
Language/JavaScript
코딩테스트를 준비할 때 반드시 알고 있어야 할 JavaScript 기초 문법과 함수들을 정리한 문서입니다.이 문서는 레벨 1 (입문) 수준으로 구성되어 있으며, 변수 선언, 조건문, 반복문, 배열/문자열 처리, 내장 함수 사용 등을 포함합니다.✅ 변수 선언: var, let, constvar: 함수 스코프, 중복 선언 가능, 호이스팅 발생 (초기화 없이 사용 가능). 사용 비추천.let: 블록 스코프, 호이스팅은 되지만 TDZ(일시적 사각지대)로 초기화 전 사용 불가.const: 블록 스코프, 재할당 불가. 기본적으로 상수 선언에 사용.일반적으로 const → 재할당 없는 값, let → 재할당 가능한 값, var는 사용 지양.✅ 조건문 (if / 삼항 연산자)if (조건) { // 실행 코드} els..
프론트엔드 개발자를 위한 AI 용어 완전 정리
·
Frontend Development
최근 웹 개발에서 AI 기능 통합이 급증하면서, 프론트엔드 개발자도 AI 관련 용어를 정확히 이해해야 할 필요성이 커지고 있습니다. ChatGPT API 연동부터 이미지 생성 AI까지, 다양한 AI 서비스를 프론트엔드에 통합하는 프로젝트가 늘어나고 있기 때문입니다.이 글에서는 프론트엔드 개발자가 꼭 알아야 할 AI 핵심 용어들을 체계적으로 정리했습니다. 각 용어의 정의와 함께 실제 프론트엔드 개발에서 어떻게 활용되는지 설명하겠습니다.기본 AI 개념AI (Artificial Intelligence, 인공지능)인간의 지능을 모방하여 학습, 추론, 문제 해결 등을 수행하는 컴퓨터 시스템입니다. 프론트엔드에서는 주로 REST API나 WebSocket을 통해 AI 서비스와 통신합니다.머신러닝 (Machine L..
시간복잡도와 공간복잡도: 개발자가 알아야 할 성능 최적화의 기초
·
Frontend Development
프론트엔드 개발에서 성능은 사용자 경험을 좌우하는 핵심 요소입니다. 특히 대용량 데이터 처리, 복잡한 UI 렌더링, 실시간 검색 기능 등을 구현할 때 알고리즘의 효율성이 직접적으로 성능에 영향을 미칩니다. 이 글에서는 시간복잡도와 공간복잡도의 개념부터 실무에서의 활용 방법까지 체계적으로 정리하겠습니다.알고리즘 복잡도란 무엇인가?성능 평가의 필요성실제 개발에서 동일한 기능을 구현하는 여러 가지 방법이 존재할 때, 어떤 방법이 더 효율적인지 판단해야 합니다.// 배열에서 최댓값 찾기 - 방법 1function findMaxMethod1(arr) { let max = arr[0]; for (let i = 1; i max) { max = arr[i]; } } return max;}// 배..
[JWT 가이드] 개념부터 React 실무 구현까지 - Session 비교, 보안, TypeScript 예제 총정리
·
Frontend Development
프론트엔드 개발에서 사용자 인증은 거의 모든 프로젝트의 핵심 요구사항입니다. 전통적인 세션 기반 인증에서 토큰 기반 인증으로의 전환이 가속화되면서, JWT(JSON Web Token)는 현대 웹 애플리케이션의 표준 인증 방식으로 자리잡았습니다. 이 글에서는 JWT의 개념부터 실제 구현까지 체계적으로 정리하겠습니다.목차JWT란 무엇인가?JWT의 구조와 동작 원리JWT vs Session 인증 방식 비교JWT의 장점과 단점실제 구현 예시보안 모범 사례결론 및 실무 가이드JWT란 무엇인가?JWT(JSON Web Token)는 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 컴팩트하고 자체 포함된(self-contained) 방식을 정의하는 개방형 표준(RFC 7519)입니다.JWT가 필요한 이유현대..
React Hooks 규칙: useState를 조건문에서 사용하면 안 되는 이유
·
Frontend Development
React Hooks는 함수형 컴포넌트에서 상태 관리와 생명주기를 다루는 혁신적인 기능입니다. 하지만 Hooks를 올바르게 사용하기 위해서는 몇 가지 중요한 규칙을 지켜야 합니다. 특히 useState를 조건문 안에서 사용하는 것은 심각한 버그를 야기할 수 있습니다.React Hooks의 내부 동작 원리Fiber와 Hook 연결 리스트React는 내부적으로 Fiber라는 자료구조를 사용하여 컴포넌트를 관리합니다. 각 함수형 컴포넌트는 Hook들의 연결 리스트(Linked List)를 가지고 있으며, 이 리스트는 Hook 호출 순서에 따라 구성됩니다.// React 내부 구조 (단순화된 버전)function Component() { // Hook 1: 첫 번째 useState const [name, s..
Git branch 전략
·
Frontend Development
소프트웨어 개발에서 Git 브랜치 전략은 팀의 개발 효율성과 코드 품질을 결정하는 핵심 요소입니다. 프로젝트의 규모, 팀 구성, 배포 주기에 따라 적절한 브랜치 전략을 선택하는 것이 중요합니다.1. Git Flow정의와 구조Git Flow는 Vincent Driessen이 제안한 브랜치 전략으로, 대규모 프로젝트에서 안정적인 릴리스 관리를 위해 설계되었습니다.브랜치 구조:main: 프로덕션 배포 브랜치develop: 개발 통합 브랜치feature/*: 기능 개발 브랜치release/*: 릴리스 준비 브랜치hotfix/*: 긴급 수정 브랜치워크플로우1. feature 브랜치에서 기능 개발2. develop 브랜치에 병합3. release 브랜치에서 QA 진행4. main 브랜치에 최종 병합5. 필요시 ho..
무한 스크롤 vs 페이지네이션, 내가 내린 선택과 후회
·
Frontend Development
최근 회사에서 관리자 페이지를 리뉴얼하면서 "페이지네이션을 할까, 무한 스크롤을 할까" 고민이 생겼습니다. 처음에는 단순하게 생각했는데, 막상 구현하다 보니 생각보다 복잡한 문제들이 많더라고요. 특히 백엔드 API와의 협업에서 예상치 못한 이슈들을 겪으면서 배운 것들을 공유해봅니다.처음 마주친 상황우리 관리자 페이지에는 주문 목록, 사용자 목록, 상품 목록 등 데이터가 많은 테이블들이 있었어요. 기존에는 단순한 테이블에 20개씩 보여주고 페이지 번호로 넘기는 구조였는데, 새로 디자인된 UI는 좀 더 모던한 느낌이었거든요.React로 구현하면서 처음에는 간단하게 생각했어요:const [currentPage, setCurrentPage] = useState(1);const [data, setData] = u..
JavaScript의 this 바인딩: 상황별 동작 원리
·
Frontend Development
JavaScript를 학습하면서 가장 헷갈리는 개념 중 하나가 바로 this입니다. 다른 언어와 달리 JavaScript의 this는 함수가 호출되는 방식에 따라 값이 달라지기 때문에 많은 개발자들이 어려움을 겪습니다. 이 글에서는 다양한 상황에서 this가 어떻게 바인딩되는지 6가지 핵심 상황을 통해 자세히 알아보겠습니다.this 바인딩의 기본 원리JavaScript에서 this는 함수가 호출되는 방식에 따라 결정됩니다. 이는 함수가 정의된 위치가 아닌, 실행되는 순간의 호출 방식이 중요하다는 의미입니다. 마치 전화를 걸 때 상황에 따라 다른 사람과 연결되는 것과 비슷합니다.1. 전역 호출 (Global Invocation)전역에서 함수가 호출되면, this는 전역 객체를 참조합니다.function g..
파이썬 GIL과 멀티스레딩: 언제 멀티스레드가 효과적일까?
·
Backend Development
파이썬 개발자라면 한 번쯤은 들어봤을 GIL(Global Interpreter Lock). 특히 취업 면접에서 자주 등장하는 단골 질문 중 하나입니다. "GIL 때문에 파이썬에서는 멀티스레딩이 의미가 없다"는 말을 들어본 적이 있으실 텐데요, 과연 이 말이 100% 맞을까요?오늘은 파이썬의 GIL에 대한 오해를 풀고, 멀티스레딩이 실제로 효과적인 상황들을 알아보겠습니다.GIL이란 무엇인가?기본 개념GIL(Global Interpreter Lock)은 파이썬 인터프리터에서 한 번에 하나의 스레드만 파이썬 바이트코드를 실행할 수 있도록 제한하는 뮤텍스(mutex)입니다.import threadingimport timedef cpu_bound_task(): # CPU 집약적인 작업 시뮬레이션 tot..
CI/CD 파이프라인: 개발부터 배포까지 자동화의 모든 것
·
Backend Development
현대 소프트웨어 개발에서 CI/CD 파이프라인은 선택이 아닌 필수가 되었습니다. 코드 변경부터 운영 환경 배포까지의 전체 과정을 자동화하여 개발 효율성을 극대화하고 안정적인 서비스 운영을 가능하게 합니다. 오늘은 CI/CD의 핵심 개념부터 실무 구축까지 완전히 마스터해보겠습니다.CI/CD란? 현대 개발의 핵심 철학기본 개념과 현실 세계 비유CI/CD를 이해하기 위해 자동차 생산 공장을 생각해보세요:🏭 전통적인 개발 방식 (수작업 공장)👨‍🔧 개발자가 코드 작성 → 📋 수동 테스트 → 🔧 수동 빌드 → 📦 수동 배포결과: 느리고, 실수 많고, 일관성 없음🤖 CI/CD 방식 (자동화 공장)👨‍💻 코드 푸시 → 🔄 자동 테스트 → ⚙️ 자동 빌드 → 🚀 자동 배포결과: 빠르고, 안정적이고,..