프론트엔드 개발을 시작할 때, “명령형과 선언형 프로그래밍”이라는 용어를 종종 듣게 됩니다.이 글에서는 두 개념의 차이를 간단히 알아보고, 자바스크립트 예시를 통해 감을 잡아봅시다.1. 개념 정리명령형(Imperative) 프로그래밍“어떻게(How)” 동작할지를 직접 단계별로 지시하는 방식입니다.예를 들면, 배열을 순회하는 코드에서 반복문(for, while)을 돌고 if문으로 조건을 확인한 뒤, 일치하면 push로 새 배열에 넣는 식으로 모든 과정을 명시하는 스타일이죠.선언형(Declarative) 프로그래밍“무엇을(What)” 만들고 싶은지를 의도 위주로 작성합니다.내부적으로 반복문이 어떻게 돌아가는지는 추상화하고, “이 조건에 맞는 결과가 필요하다”처럼 결과만 선언합니다. 예를 들어 Array.pr..
Deep Dive
모달이란?모달이란 사용자에게 중요한 정보를 제시하거나, 특정 액션을 수행하기 전에 사용자의 확인을 받기 위해 기존 화면 위에 레이어 형태로 표시되는 컴포넌트를 말합니다. 프로젝트를 진행하다 보면 모달을 만들어야 하는 상황이 자주 생기는데, 단순히 isVisible 같은 state를 이용해 화면에 표시하거나 숨기는 방법으로도 간단하게 구현할 수 있습니다.다만, 복잡한 형태의 모달이 많이 생기거나, 여러 화면에서 재사용해야 하는 상황이라면 자칫 코드가 중복되고 유지보수가 어려워질 수 있습니다. 이 때문에 많은 프로젝트에서는 재사용 가능한 모달 컴포넌트를 만들어 사용하거나, 상태관리 도구(Redux 등)를 활용해 전역에서 모달 표시 여부를 관리하는 방식을 택하곤 합니다.이번 글에서는 Ref를 이용해 모달을 제..
23년 9월에 시작해 24년 2월까지 약 5개월 동안 앱 프로젝트를 진행했다.부족한 점이 많은 프로젝트지만 그래도 진행하면서 경험했던 내용들이 잊혀지기에는 아쉬운 내용이 많아 간단하게라도 정리하고자 한다. 프로젝트 결과물은 아래에서 확인 할 수 있다.Github회고록기술스택 정하기앱을 개발에는 다음과 같은 5가지의 방식이 있다. 각각의 방식은 장/단점이 존재하며, 자기가 개발하려는 앱의 성격에 따라 선택해서 개발하는 것을 추천한다.네이티브 앱(Native App)모바일 웹 앱(Mobile Web App)프로그레시브 웹 앱(Progressive Web App)하이브리드 앱(Hybrid App)크로스 플랫폼 앱(Cross-Platform App) 가장 기본이 되는 네이티브 앱네이티브 앱은 단어 그대로 각 기..