Typescript Cannot find module에러
·
고찰 & 트러블슈팅
타입스크립트를 이용해 서버를 구축하면 실행할 때 JS로 변환해야 서버를 실행할 수 있습니다.이를 위해 tsconfig.json파일에서 많은 설정을 하는데요. "nodemon --exec ts-node src/app.ts" 위 명령어로 서버를 실행하면 안나던 오류가 "npx tsc && node dist/app.js" 위 명령어로 서버를 실행하면  at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) at Function.Module._resolveFilename (/Users/jojunhui/Desktop/project/algorithm-project/server2.0/node_modules/module-alias..
Docker와 Jenkins를 이용해서 CI/CD를 구축해보자
·
개발
개인 프로젝트를 진행하면서 프론트는 Vercel로 배포하여 자동배포와 https를 적용하였는데, 서버는 아직 자동배포 환경을 만들어놓지 않아서 이번에 Jenkins로 구축을 하였습니다. Jenkins 란?Jenkins는 지속적인 통합 및 지속적인 배포 (CI/CD)를 지원하는 오픈 소스 자동화 도구입니다.Jenkins는 자바 기반 웹 애플리케이션이며,  빌드, 테스트, 배포를 자동화해 줍니다. CI / CD 란?CI/CD는 지속적 통합(Continuous Integration) 및 지속적 제공/배포(Continuous Delivery/Deployment)를 의미하며,소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 합니다.CI(지속적 통합)은 코드 변경 사항을 공유 소스 코드 리포지토리에 ..
Nginx SSL인증을 통해 HTTPS 적용
·
개발
이번에 알고리즘 리뷰 사이트를 개인프로젝트로 진행하면서 서버를 배포할 때 HTTPS를 적용하기로 했습니다.저는 AWS EC2를 이용했기 때문에 1. AWS의 로드밸런서를 통해 HTTPS를 적용하는 방법2. Nginx로 HTTPS를 적용하는 방법두 가지 방법 중 2번째 방법으로 진행하였습니다. Nginx로 HTTPS를 구현한 이유는 아래와 같습니다. 1. AWS의 로드밸런서 비용이 부담된다.2. 후에 Nginx로 무중단 배포를 구현해보려 계획중이다.3. Nginx로 로드밸런싱 성능 테스트를 진행할 예정이다. HTTPS란?하이퍼 텍스트 전송 프로토콜 보안(HTTPS)은 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되고 있는 기본 프로토콜인 HTTP의 암호화된 HTTP 프로토콜로서 안정화된 데이터 ..
알고리즘 리뷰 사이트 만들기(1)
·
개발
저번에 간단한 프로젝트로 미팅과 소개팅을 할 수 있는 프로젝트를 만들려다가본인인증을 넣어야 한다는 피드백을 받아서전부터 알고리즘을 리뷰할 수 있는 사이트를 만들어보고 싶었는데이미 나와 같은 생각을 한 사람이 있어서 이 분의 프로젝트를 비슷하게 따라해보려고 한다. https://velog.io/@ayoung0073/Project-ARS-%EA%B0%9C%EC%9D%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%9B%84%EA%B8%B0 [프로젝트] ARS 개인 프로젝트 소개 및 정리ARS 개인 프로젝트 정리 (Springboot & React)velog.io ERD도 다음과 같이 수정하였다.앞으로 프로젝트를 진행하면서 기능을 추가할 때가 된다면 ERD도 다시 설계하려고 한다..
간단한 프로젝트 만들기
·
개발
지금까지 스프링을 하려다가 진로에 대한 생각이 점점 확고해지면서 nodejs로 갈아탔다.그래서 차근차근 토이 프로젝트를 진행하려고 한다.프론트랑 서버를 같이 개발하기 때문에 시간이 좀 걸리겠지만 확실하게 배우면서 해야겠다.프론트는 React, 백엔드는 Express를 사용하기로 하고 후에 Js가 익숙해지면 Ts와 Nest.js로 확장하도록 해야겠다. 초기 버전을 바탕으로 계속해서 프론트와 백앤드를 넓혀갈거기 때문에 처음은 정말 간단히 시작하려고 한다.현재 데이터베이스 ERD는 다음과 같다.  간단한 게시판 프로젝트를 시작으로 계속해서 기능을 추가할 계획이다. 현재 깃 전략은 github flow전략을 사용하기로 했고, 이유는 다음과 같다.1. git flow전략은 어플리케이션에 더 적합한 전략이다.2. ..
Unknown Entity, JPA 엔티티 인식 오류
·
자바스프링
JPA와 스프링을 공부하면서 db에 JPA로 값을 넣는 것을 진행하고 있었다. 순조롭게 진행되고 있었는데, 스프링에서 Entity를 인식하지 못하는 오류가 발생했다. domain -> Member package com.example.spring.domain; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Configuration; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Member { @I..
객체 지향 프로그래밍이란?(OOP, Object-Oriented Programming)
·
객체지향
객체 지향 프로그래밍(OOP)은 절차 지향 프로그래밍이 아닌 ‘객체’들의 상호작용(메시지 주고받기, 데이터 처리 등)으로 프로그램 로직을 구성하는 프로그래밍이다. 절차 지향 프로그래밍으로는 대표적으로 C언어가 있고, 객체 지향 프로그래밍으로는 대표적으로 자바가 있다. OOP는 캡슐화, 추상화, 다형성, 상속성 이 4가지 대표적인 특징을 알아야 한다. 1. 캡슐화 (Encapsulation) 한 객체가 특정한 하나의 목적을 위해 필요한 데이터(변수)나 메소드를 하나로 묶는 것을 의미한다. 즉, 클래스를 만들 때 나중에 이클래스에서 만들어진 객체가 특정한 목적을 가지고 사용할 변수와 특정한 액션을 취하는 메서드를 관련성 있게 클래스에 구성해야한다. 쉽게 말해서 연관 있는 변수와 함수를 클래스로 묶는 작업을 ..
스프링 컴포넌트 스캔 @Conponent, @Controller, @Service, @Repository, Autowired 어노테이션
·
자바스프링
전에 나는 자바에서 프로젝트를 진행했었는데, 순수 자바로 코드를 작성했을 때는 서로 다른 클래스에서 같은 하나의 객체를 생성하는 것이 불필요하므로 인자를 통해 넘겨주는 방식으로 작성을 했다. 예를 들어 test1, test2, test3 클래스가 있고 각각 test1, test2클래스에서 test3 클래스를 사용하고 싶을 때 package com.example.springStudy.controller; public class test1 { test3 test = new test3(); } package com.example.springStudy.controller; public class test2 { test3 test = new test3(); } 이렇게 각 클래스마다 객체를 생성해서 사용하면 데이터..