기술 블로그
웹과 앱을 만들며 남긴 기록 447편입니다.
Next.js에서 SEO와 메타데이터 설정을 위해 metadata 와 generateMetadata 두 가지 방법을 제공합니다. 1. metadata: 정적 메타데이터 설정 metadata 객체는 빌드 시점에 결정되는 정적 메타데이터를 설정할 때 사용합니다. expor...
주로 부모 클래스(또는 인터페이스)의 메서드를 자식 클래스에서 재정의할 때, 코드의 가독성을 높이고 컴파일러에게 의도를 명확하게 전달하기 위해 사용됩니다. 1. @Override 의 역할 부모 클래스의 메서드를 재정의(Override)할 때 사용 자식 클래스에서 부모 ...
타입 안전성 JavaScript 런타임 오류를 방지 할 수 있었습니다. TypeScript는 코드 작성 시점에 오류를 검출하여, 더 안정적이고 오류가 적은 애플리케이션을 만들 수 있습니다. JavaScript도 Prototype을 통해 타입을 설정할 수 있지만, 타입을...
객체 지향 프로그래밍(OOP, Object-Oriented Programming)은 프로그램을 객체(object)라는 단위로 나누어 개발하는 방식입니다. 객체는 상태(필드)와 행동(메서드)을 가지며, 실제 세계의 사물이나 개념을 추상화하여 코드로 표현할 수 있습니다. ...
1. Callback Callback 함수 는 자바스크립트에서 비동기 작업을 처리하기 위한 오래된 방식 중 하나입니다. 함수가 실행된 후 그 결과를 이용해서 다른 함수를 호출할 때 사용하는 방식입니다. 이는 주로 파일 읽기, HTTP 요청, 타이머와 같은 비동기 작업을...
IntelliJ IDEA와 Eclipse는 Java 개발에 널리 사용되는 IDE입니다. 이 문서에서는 두 IDE의 주요 특징, 장단점, 그리고 선택 기준을 비교합니다. (Visual Studio Code 별도 작성 예정) IntelliJ IDEA 장단점 장점 (주관적)...
Next.js 프로젝트에서 .js 와 .jsx 파일 확장자 사용에 관한 글입니다. 결론부터 말씀드리자면 Next.js는 .js 와 .jsx 모두를 지원하므로, 어느 쪽을 사용해도 코드 실행에는 직접적인 영향이 없습니다. 그러나 아래 언급 될 이점들을 고려하여 적절한 확...
데이터 타입(Data Types) 데이터 타입은 정말 중요합니다. 나중이란 없습니다. Java는 두 가지 유형의 데이터 타입을 지원합니다. 기본 데이터 타입(Primitive types)과 참조 타입(Reference types). 기본 데이터 타입 : int , bo...
문제 [Error]: Dynamic server usage: Page couldn't be rendered statically because it used `request.url`. See more info here: https://nextjs.org/docs/mess...
1. Chocolatey란? Chocolatey는 Windows 운영 체제를 위한 명령줄 패키지 매니저입니다. 이는 소프트웨어의 설치, 업그레이드, 구성을 자동화하는 도구로, Linux의 apt나 yum, macOS의 Homebrew와 유사한 기능을 Windows에서 ...
Java 프로젝트에서 "The import org.springframework cannot be resolved" 오류가 발생했을 때, 가장 빠른 해결 방법은 VS Code의 명령 팔레트를 사용하여 프로젝트 구성을 다시 로드하는 것입니다. 1. VS Code에서 명령 ...
코드 품질과 성능을 관리하는 것은 매우 중요합니다. 이를 돕기 위해 다양한 도구들이 존재하는데, 그 중 대표적인 두 가지가 애플리케이션 성능 관리(APM) 도구와 정적 분석 도구 입니다. APM 도구란? 애플리케이션 성능 관리(APM) 도구 는 애플리케이션의 성능과 가...
1. CDN 사용 이유 성능 향상 사용자와 가까운 서버에서 콘텐츠 제공 : CDN은 전 세계에 분산된 엣지(Edge) 서버를 통해 사용자와 지리적으로 가까운 위치에서 콘텐츠를 제공함으로써, 지연 시간을 줄이고 응답 속도를 높입니다. 이는 특히 이미지, 동영상 등 대용량...
Accept Both Changes 란? Accept Both Changes는 충돌이 발생한 파일에서 로컬 브랜치 와 원격 브랜치 의 변경 사항을 모두 유지 하는 옵션입니다. 언제 사용할까? 두 변경 사항이 모두 유효하고, 결합하여 사용하는 것이 적절할 때. 충돌된 코...
1. Java Java 는 객체지향 프로그래밍 언어로, 서버 애플리케이션, 모바일 애플리케이션, 데스크톱 애플리케이션 등 다양한 분야에서 널리 사용됩니다. 2. Spring Spring 은 Java 프레임워크 로, Java 애플리케이션을 더 쉽게 개발할 수 있도록 도와...
Accept Current Change 란? Accept Current Change는 충돌이 발생한 파일에서 로컬 브랜치 (현재 작업 중인 브랜치)의 변경 사항을 유지하고, 원격 브랜치 의 변경 사항을 무시하는 옵션입니다. 쉽게 설명하면, 네가 바꿀래? 내가 바꿀까? ...
Can’t Automatically Merge란? Can’t Automatically Merge"는 GitHub에서 Pull Request(PR)를 병합하려고 할 때, Git이 자동으로 병합할 수 없는 충돌이 발생했음을 알리는 메시지입니다. 이 메...
Next.js의 API 라우트를 사용하면 app/api/users/route.js , app/api/restaurant/route.js 등의 파일만으로 데이터베이스 쿼리를 포함한 모든 백엔드 로직을 처리할 수 있습니다. 폴더 구조 app/ ├── api/ │ ├── u...
Approved란 무엇인가요? Approved(승인됨)은 Pull Request(PR)가 코드 리뷰어들에 의해 검토된 후, 병합해도 좋다는 동의를 받은 상태를 의미합니다. PR을 생성한 후, 팀원들이 코드를 검토하고, 모든 리뷰어가 해당 PR의 변경 사항에 동의하면, ...
Prisma를 사용하면 직접 쿼리를 작성할 필요 없이, Prisma Client를 통해 데이터베이스 작업을 수행할 수 있습니다. Prisma Client는 타입 안전성과 자동 완성 기능을 제공하여 코드 작성과 유지 보수를 크게 개선해 줍니다. Prisma의 주요 장점 ...