[NestJS] NestJS는 Spring에서 많은 영감을 받았다.
·
Dev Framework/Node.js
1. NestJS와 Spring 프레임워크의 유사성NestJS는 Java 생태계의 Spring 프레임워크에서 많은 영감을 받았습니다. 이 두 프레임워크 간의 유사성은 다음과 같습니다:1.1. 모듈 구조Spring과 NestJS 모두 모듈화된 구조를 채택하고 있습니다. Spring의 `@Configuration`과 `@ComponentScan`은 NestJS의 `@Module` 데코레이터와 유사한 역할을 합니다. 두 프레임워크 모두 관련 기능을 논리적 단위로 그룹화하여 애플리케이션의 구조를 개선합니다.1.2. 의존성 주입 시스템Spring의 핵심 기능 중 하나인 의존성 주입(DI)은 NestJS에서도 중요한 역할을 합니다. Spring의 `@Autowired`와 유사하게, NestJS는 생성자 주입을 통해..
[NestJS] NestJS는 처음이지? 어서와.
·
Dev Framework/Node.js
1. NestJS 너 대체 정체가 뭐야?NestJS는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 혁신적인 프레임워크입니다. 2017년 Kamil Myśliwiec에 의해 개발된 이 프레임워크는 Angular의 아키텍처에서 영감을 받아, TypeScript를 기반으로 한 견고하고 모듈화된 구조를 제공합니다.현대적인 서버 애플리케이션 개발에서 마주치는 많은 과제들, 예를 들어 코드의 구조화, 확장성, 유지보수성 등의 문제를 NestJS는 효과적으로 해결합니다. 이 프레임워크는 Express.js를 기본 HTTP 서버 프레임워크로 사용하지만, 필요에 따라 Fastify로 전환할 수 있는 유연성도 제공합니다.Fastify: Node.js 환경에서 사용되는 웹 프레임워크로, 성능이..
[웹 배포] 프록시(Proxy)
·
웹 배포
프록시의 역사와 배포에서의 역할웹 개발을 하다 보면 프록시라는 용어를 자주 접하게 됩니다. 하지만 프록시가 정확히 무엇이며, 어떻게 발전해 왔는지, 그리고 배포 환경에서 어떤 역할을 하는지 깊게 생각해 본 적이 있으신가요? 이번 글에서는 프록시의 역사와 함께 배포에서의 프록시 활용에 대해 알아보겠습니다.프록시의 탄생: 왜 필요했을까?프록시는 영어로 "대리인"을 뜻합니다. 마치 누군가 대신해서 메시지를 전달해주는 역할을 하는 것이죠. 인터넷 초창기에는 네트워크 속도가 느리고, 보안 이슈도 많았습니다. 이때 프록시는 클라이언트와 서버 사이에서 중간 역할을 수행하며 이러한 문제들을 해결하는 데 도움을 주었습니다.예를 들어, 학교 도서관에서 특정 웹사이트에 접속하려고 할 때 직접 인터넷에 연결하지 않고 도서관 ..
[Node.js] ORM에 대해서
·
Dev Framework/Node.js
ORM기존에 쿼리문으로 직접 DB에 접근하던 사람들에게 ORM에 대해서 설명드리고자 아래와 같은 글을 작성하게 되었습니다.ORM은 '통역사'라고 생각하시면 됩니다. 두 나라 사람들이 서로 다른 언어를 사용하는데, 이들이 소통하려면 통역사가 필요합니다.한 나라는 '프로그래밍 언어(예: JavaScript)'를 사용합니다.다른 나라는 '데이터베이스 언어(예: SQL)'를 사용합니다.ORM은 이 둘 사이에서 '통역'을 담당합니다.실생활의 예를 들어보겠습니다.당신이 온라인 서점을 운영한다고 가정해 봅시다. 이 서점에는 수많은 책 정보가 있고, 이를 데이터베이스에 저장해야 합니다.데이터베이스 관점: 데이터베이스에서는 '책' 테이블이 있고, 여기에 '제목', '저자', '가격' 등의 컬럼이 있습니다.프로그래밍 관점..
[Node.js]Express.js에서 효율적인 API 에러 핸들링 방법: try-catch 없이 처리하기
·
카테고리 없음
Express.js에서 효율적인 API 에러 핸들링 방법: try-catch 없이 처리하기API 서버를 구축할 때 에러 핸들링은 애플리케이션의 안정성과 유지보수성을 높이는 데 매우 중요한 요소입니다. 특히, Express.js에서는 에러 핸들링 미들웨어를 통해 발생한 에러를 일관성 있게 관리할 수 있어, 개별 컨트롤러에서 try-catch를 남발하는 상황을 피할 수 있습니다.이번 글에서는 Express.js에서 try-catch 없이 API 에러를 처리하는 방법을 살펴보고, 통합 에러 핸들러를 활용하여 코드의 간결성을 유지하는 방법을 소개하겠습니다. 1. 에러 핸들링 미들웨어란?에러 핸들링 미들웨어는 Express.js에서 발생한 모든 에러를 처리하는 중앙 관리 포인트입니다. 애플리케이션 내에서 에러가 ..
[AWS][EC2] 인스턴스 하나로 스프링부트 프로젝트 배포하기
·
Dev Activity
인스턴스 하나로 배포하게 된 이유백엔드 서버를 배포하기 위해서 다른 블로그의 글을 많이 참고해보았습니다. 그러나 저희처럼 인스턴스 한 개로 배포하는 글은 많지 않았고, 대부분 RDS와 인스턴스의 개수를 추가해서 배포하는 것이 대부분이었습니다. 이 프로젝트는 학과 커뮤니티 겸 학과시설의 예약을 도와주는 웹 서비스입니다. 이 프로젝트는 추후에 학과에 도입될 수 있게 교수님과 협의가 되었고, 저희는 AWS를 통한 배포의 경험을 쌓으면서 서비스를 테스트를 하기 위해서 배포하기로 했습니다.  AWS EC2 배포인스턴스 한 개로도 트래픽을 버틸 수 있는 서비스인지 확인하고 이 글을 적용해보길 바랍니다.우선 AWS의 EC2 서비스로 이동해주길 바랍니다.리전을 서울로 변경해주길 바란다.리전에 따라 인스턴스 관리 설정 ..
네이버 부스트캠프 웹・모바일 9기 챌린지 후기(+멤버십 입과)
·
Dev Activity
네이버 부스트캠프 챌린지란?챌린지는 4주간의 기간 동안 이루어진다. 챌린지의 미션은 하루 단위로 주어지며 오전 10시부터 오후 7시까지 참여해야 하는 과정이다. 이후 피어세션에서 수행한 미션을 토대로 다른 캠퍼 분들과 미션에 적용한 코드나 개념에 대한 토의가 이루어진다.자세한 내용은 여기서 확인해볼 수 있다 -> 네이버부스트캠프 Web & Mobile 모집 안내 부스트캠프개발자의 지속 가능한 성장을 위한 학습 커뮤니티boostcamp.connect.or.kr   챌린지에 입과하면서 다짐한 것현재 4학년 마지막 학기이며, 새로운 환경에 대한 갈증이 있었다. 학교에서 진행하던 프로젝트에서 많은 인사이트를 얻었지만 더 많은 인사이트를 얻기 위해서 다른 활동을 찾던 와중 네이버 부스트캠프 모집 과정에 참여하게..
[프로그래머스][SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
·
프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코드-- 코드를 입력하세요SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(MONTH(START_DATE)) AS RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS CRWHERE START_DATE >= "2022-08-01" and START_DATE = "2022-08-01" and START_DATE 4)GROUP..
개발자 성현
개발새발 블로그