분류 전체보기 102

24.03.14

Nest.js가 너무 어려워서 개인과제도 또 제대로 하지 못했음... 그래서 Nest 사용을 기초부터 알려주는 영상이 있어서 천천히 따라해봄 1-1. npm i -g @nestjs/cli 네스트 클라이언트를 글로벌 환경으로 다운 받는다 1-2. nest -v 명령어로 네스트 버전 확인을 통해서 네스트가 잘 다운 받아졌나 확인 가능 1-3. nest new projectName으로 프로젝트를 시작한다. 2-1. - npm run start:dev로 nest를 실행시켜본다. 2-2. 모듈 생성 명령어 -> nest g mo(module) boards => nest cli를 사용해서 boards라는 이름의 모듈을 generate(생성한다) 3-1. Nest에서의 Controllers란? : 들어오는 요청을 처..

TIL 2024.03.15

24.03.13

한 것 1. nest 프로젝트 초기화(nest new post-subject) 2. 'prettier/prettier': 0, eslintrc에 추가(CR DELETE오류 방지?) 3. 깃허브 레포지토리 연결 4. npm run start:dev로 동작 확인 5-1. nest g resource user로 파일 생성 5-2. nest g resource qustion 5-3. nest g resource answer 6. 엔티티 작업 + npm i로 의존성 패키지들 최신화? 7. 엔티티 작성을 위한 npm i typeorm TypeORM 다운로드 8. 유저 엔티티 작성 9. 유저 엔티티에 사용하기 위한 eum UserRole을 파일 만들어서 작성, 유저 엔티티에 임포트 후 사용 @Column({ type..

TIL 2024.03.14

24.03.08

npm i -g @nestjs/cli :네스트 설치 nest.js 실행 명령어: nest nest new sparta-nest : Nest.js로 새로운 프로젝트 생성 -> 설치가 끝나면 sparta-nest라는 폴더가 생성 npm i @nestjs/mapped-types class-validator @nestjs/mapped-types는 DTO 자체의 변환 및 상속을 도와주는 패키지이며 class-validator는 DTO를 구성하는 데이터의 유효성을 검증하는 패키지임 npm i lodash @types/lodash lodash는 Javascript로 코딩할 때 유용하게 사용할 수 있는 유틸성 패키지임 이제, tsconfig.json 파일을 열어 다음과 같이 내용을 변경합니다. 아래의 파일 내용을 통째..

TIL 2024.03.11

24.03.07

Express.js 의 장점과 단점 node.js를 공부하다 보면 필연적으로 웹 서버를 개발하는 단계에 도착하는데 책이나 메뉴얼에서는 Express를 공식 라이브러리 처럼 다룸. 익스프레스는 간단한 코드로 빠르고 간편하게 웹서버를 만들 수 있다. 하지만 익스프레스를 사용하여 웹 서버를 만들다 보면 사용하고 싶은 미들웨어들이 많으면 많을 수록 미들웨어를 사용하겠다고 계속 선언을 해야하며 사용하려는 미들웨어에 대한 공부를 피할 수 없게되었다. 레이어드 아키텍처 패턴: 웹 서버를 구현할 때 가장 보편적으로 사용되는 구현 패턴임 - 시스템을 여러 계층으로 나누어 각 계층이 특정 책임을 갖도록 하는 아키텍처 스타일 (하나의 클래스나 모듈은 하나의 책임만을 가져야한다!) 레이어드 아키텍처 패턴의 각 계층 1. 프레..

TIL 2024.03.08

24.03.06

클래스(class): 객체를 만들기 위한 붕어빵 틀 클래스의 구성 요소: 같은 종류의 객체들이 공통으로 가지는 속성, 메서드를 정의함. 1. 속성: 객체의 성질을 결정함.(팥붕, 슈붕) 2. 메서드: 객체에서 제공하는 기능들을 사용하게 해준다. 생성자(constructor): 클래스의 인스턴스를 생성하고 초기화할 수 있게 해줌. 1. 인스턴스를 생성할 때 자동으로 호출된다. 2. 클래스에서 오직 1개의 생성자가 존재함. 3. 보통 생성자로 객체 속성을 초기화 하거나 객체 생성 시에 꼭 되어야하는 초기화 로직을 넣기도함 클래스 접근 제한자 1. public: 클래스 외부에서도 접근이 가능하게 해줌 - 접근 제한자를 설정해주지 않으면 기본적으로 public이 설정된다. - 민감하지 않은 객체 정보를 누구나 ..

TIL 2024.03.07

24.03.05

enum과 object literal 비교 enum -> 간단한 상수 값의 경우 적합 object literal -> 복잡한 구조, 다양한 데이터 타입이 필요한 경우 적합 object literal => enum과 매우 흡사하지만 키워드가 enum이 아닌 const를 사용한다.(let도 사용가능) 객체 리터럴은 키와 밸류의 쌍으로 구성된 객체를 정의하는 방식이다. 오브젝트 리터럴의 장점 1. enum은 문자열, 숫자형 값만 대입을 할 수 있었지만, 오브젝트 리터럴은 어떤 타입의 값이든 대입할 수 있음. 2. 멤버의 값이나 데이터 타입을 마음대로 변경 가능하다.(재할당 가능하다?) 3. 다양한 데이터 타입을 지원하기 때문에 유연한 구조를 가질 수 있음. 4. 런타임 에러를 방지할 수 있다. enum과 ob..

TIL 2024.03.05

24.03.04

TS는 JS의 단점을 보완하기 위해 등장한 언어임. 변수 타입이 실행 때 결정되던 것이 컴파일 시간에 결정이 된다.(코드를 작성하자마자 오류를 잡아줌) 자료형을 지정할 수 있어서 지정한 자료형 이외의 자료형을 입력하면 에러를 발생시켜줌 정의되지 않은 프로퍼티를 연산하는 것을 막아 NaN을 방지할 수 있다. TS를 사용하면 객체지향 프로그래밍에서의 메리트를 얻을 수 있음.(값을 변경하지 못하게 한다던가...) 컴파일러는 내가 사용하는 언어로 작성한 코드를 다른 언어로 변환해주는 도구임. 컴파일 과정에서 내 코드를 검사해서 문제가 없는지 확인을 한다. tsc === 타입스크립트 컴파일러(TS -> JS) tsc --init 명령을 사용하면 tsconfig.json파일이 생성된다.(TS의 프로젝트 설정파일) ..

TIL 2024.03.04

24.02.29

백오피스 프로젝트 회고 1. KEEP(잘하고 있는 점) 팀워크 : 코드에 문제가 있을 때 자기가 맡은 부분이 아님에도 시간을 들여서 서로 나서서 해결을 하려고 했음. 성실성 : 팀원한명한명이 책임감을 가지고 본인들의 코드를 작성함 배려 : 닥달하지 않고 같이 함께 할려고 함 분위기 : 편안한 분위기 가 족같은 분위기 시너지 : 팀원이 모자란 부분을 서로 채워줄려고 노력함. 2. PROBLEM(문제점) 소통 : 전체적으로 초반에는 소통이 부족했다. Git : Git에 대한 숙지가 부족해서 적극적인 활용을 하지 못함. 수정 : 처음 계획된 것 보다는 달라져서 수정하는데 시간을 많이 사용했다. 3. TRY(시도해 볼 것들) Git : 깃의 공격적 활용 설계 : 초반에 시간이 많이 걸리더라도 치밀한 설계를 통해..

TIL 2024.02.29

24.02.26

쿼리스트링 공부 path(경로) 부분에 따라서 우리의 애플리케이션들 각각 다른 동작을 수행한다. (언제나 똑같은 결과를 보여준다는 것을 시사한다.) http://a.com/topic?id=1 topic이라는 라우터에 id가 1이라는 값을 전달하는 것 id가 1인 값을 처리를 해서 화면에 띄워주면 된다. path뒤에 오는 ? 이후의 것들을 쿼리스트링이라고 부름 쿼리스트링은 우리의 앱이 사용자에 요청을 더 섬세하게 처리를 해줄 수 있게 해준다. 같은 경우 내에서 쿼리스트링으로 다양한 결과를 낼 수 있다. http://a.com/topic?id=1 topic === URL 프로토콜 - 서버 컴퓨터가 위하는 주소 - 경로(path): 라우터와 연결이 된다. - 쿼리스트링 topic?id=1 에서 topic 라우..

TIL 2024.02.26
728x90