본문 바로가기

Develop/Study9

패키지 매니저(npm, pnpm, yarn) 최근에 새로운 프로젝트를 들어가면서 초기 환경설정을 했는데 궁금한 게 생겼다.예전에 교육기관에서 하던 소규모 프로젝트에서는 CRA를 사용해서 리액트 프로젝트 환경설정을 했었다.그때는 아무것도 모르고 그냥 npx create-react-app 하고 npm start를 하면 되는구나 하고 넘어갔는데,왜 npx create-react-app을 하면 npm start가 됐는지, 지금 하는 프로젝트는 pnpm을 쓰는데 어떤 차이인 건지 궁금해졌다. 📦 패키지 매니저패키지 매니저는 외부 라이브러리를 쉽고 체계적으로 설치, 업데이트, 삭제, 관리해주는 도구다.명령어 한줄로 해결이 되니 개발 생산성도 높아지고 보안, 호환성, 협업 효율성 등 이점이 많다.오픈소스 생태계와 현대 소프트웨어 개발에 반드시 필요한 핵심.. 2025. 6. 28.
REST API 규칙 지금 백엔드 API를 개발하다 보면 기존 코드들을 많이 참고하고 있는데 기존 코드들에서 일정한 패턴이나 규칙이 반복되는 것을 발견하게 된다.처음에는 API 엔드포인트나 네이밍을 자유롭게 정해도 되는지 의문이 들었지만 실제로는 명확한 규칙이 존재한다.그래서 REST API의 네이밍과 설계 규칙에 대해 정리해보려고 한다.✅REST API ? REST는 HTTP 웹의 창시자 중 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다.웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개했는데 그것이 바로 REpresentational State Transfer 이다.API는 Application Programming Interface의 약자고 서로 다른 시스템이 통신할 수 있게 해.. 2025. 6. 9.
UUID 출결 시스템에 QR 코드를 적용하면서 겪은 것들 정리하면서 한번 더 공부하기!이번 프로젝트에서 QR이미지를 이용하면서 출결을 관리할 수 있는 로직을 만들어야 했다.기능적인 부분에서는 QR 코드 이미지가 매번 다르게 생성되어야 했고, 출결 가능 여부를 판단할 수 있도록 유효 시간 조건도 포함되어야 했다.이 두 가지 조건을 만족시키기 위해 선택한 것이 바로 UUID였다. ✅UUID ? UUID란 Universally Unique Identifier의 약자로 128bit의 고유 식별자를 뜻한다.다른 고유 ID 생성 방법과 다르게 UUID는 중앙 시스템에 등록하고 발급하는 과정이 없기 때문에 상대적으로 더 빠르고 간단하게 만들 수 있다는 장점이 있다. RFC 4122문서에 정의된 UUID 버전 4 표준 규약에는.. 2025. 4. 18.
Deserialization Failure due to Date Format Deserialization Failure due to Date Format(날짜 포맷 역직렬화 실패) 지금 개발하고 있는 부분에 날짜 포맷을 사용해야 하는 부분이 있었다.사용자가 해당 날짜를 수정해서 저장도 가능하고, 저장한 값들은 불러올 수도 있어야 한다.하지만 시간 저장이 안되는 문제가 발생했다!!  오늘의 오류 공부하기  ⚠️문제필드에서 날짜를 입력후 저장하게 되면 500에러 발생  ❔원인프론트에서 날짜에 대한 type 값이 여러개 있는데type="text"는 날짜, 시간 선택에 대한 범위가 없고 광범위하게 사용 가능하지만 기본 제공되는 달력 라이브러리나 이런 편의성이 없기 때문에 사용자가 직접 입력한것을 받아서 쓴다. type=”date”는 날짜만 선택 가능하다. 지금 나의 경우에는 시간도 선택.. 2025. 4. 10.
react, typescript 타입스크립트의 Generic이란? > 타입스크립트를 경험해보지는 못했지만, 자바의 제네릭은 알고 있다.자바의 제네릭은 클래스나 메서드에서 사용할 데이터 타입을 나중에 지정할 수 있도록 해주는 기능(타입을 매개변수로 받는다고 생각)이다. T func(T val)  처럼 제네릭 타입(T)를 선언해서 어떤 타입이든 받아서 변환할 수 있다. 타입스크립트의 제네릭도 비슷한 개념인 것 같다.어떤 타입이 올지 미리 정하지 않고 나중에 사용할 때 타입을 외부에서 지정할 수 있도록 해주는 기능이다.이렇게 되면 코드를 재사용하면서도 타입 안정성을 보장해주는 이점이 있다. 예를 들어 any를 사용하는 함수는 어떤 타입이든 받을 수 있지만, 반환 타입이 정확하지 않아 타입 안정성이 떨어지게 된다.identity(123)처럼 .. 2025. 3. 22.
Spring Framework Spring Framework란 Java 엔터프라이즈 애플리케이션 개발을 위한 오픈소스 애플리케이션 프레임워크로객체 지향 프로그래밍(OOP) 원칙을 따르면서, 개발자가 효율적이고 확장 가능한 애플리케이션을 만들 수 있도록 지원하는 것이다.  Spring Container  스프링에서 객체(Bean)들을 생성하고 관리하는 컨테이너다.모든 객체를 개발자가 직접 생성하는 것이 아니라, Spring Container가 관리한다.컨테이너는 ApplicationContext 인터페이스를 통해 제공된다. 스프링에서 객체를 생성한다는 것은 클래스를 메모리에 올려(new 키워드) 인스턴스를 만들고 객체를 관리하는 것을 의미하는데Spring Container가 객체를 생성하는 것은 일반적으로 개발자가 new 키워드를 사용.. 2025. 3. 14.