[NestJS] JWT(JSON Web Token) - 로그인 API 구현과 암호화
·
Server/NodeJS(NestJS)
JWT(JSON Web Token)는 클라이언트와 서버 간에 정보를 안전하게 전달하기 위해 사용되는 토큰이다크게 헤더(header), 페이로드(payload), 서명(signature) 세 부분으로 구성되는데, 이 세 부분이 결합되어 하나의 토큰을 형성한다 JWT 토큰을 구현하기 위해서는 Access Token과 Refresh Token 이렇게 두 종류의 토큰이 사용된다이 두 가지 토큰은 각기 다른 목적과 특성을 가지고 있으며, 보안성과 사용자 경험을 동시에 고려한 토큰 관리 방법이다. Access Token[목적] Access Token은 사용자 인증을 위해 사용된다이 토큰은 클라이언트가 서버에 API 요청을 보낼 때 포함되며, 서버는 이 토큰을 사용해 요청이 인증된 사용자인지 확인한다 [life cy..
[NestJs] @InjectRepository 데코레이터 with TypeORM
·
Server/NodeJS(NestJS)
NestJS에서 @InjectRepository 데코레이터는 TypeORM과 함께 사용되어 특정 엔티티의 리포지토리를 서비스 클래스에 주입하기 위해 사용됩니다! 이 데코레이터는 의존성 주입을 통해 데이터베이스와의 상호작용을 보다 간편하게 관리할 수 있도록 도와줘요  이 예제에서는 MySQL 데이터베이스를 사용하여 사용자(User) 데이터를 저장하고, GraphQL을 통해 사용자 데이터를 조회하고 추가하는 API를 구축합니다.@InjectRepository 데코레이터 사용 방법// npm 설치npm install @nestjs/typeorm typeorm mysql2npm install @nestjs/graphql @nestjs/apollo graphql apollo-server-express// yarn..
Git 초기화 하기
·
Devops/Git & SVN
Git 초기화 명령어1. 로컬 저장소의 .git directory를 삭제합니다.rm -rf ./.git  2. 삭제 후 로컬 저장소 초기화git init# 출력Reinitialized existing Git repository in C:/~~/.git/  3. 초기화된 파일 커밋git add .git commit -m 'Commit Message'  4. 이후 원격 저장소 연결 다시 처리git remote add origin   5. 마지막으로 원격 저장소에 pushgit push --force --set-upstream origin main
[인텔리제이] 콘솔창 한글이 깨질 때
·
IT 정보
IntelliJ에서 콘솔창을 확인하는데 한글이 깨지는 문제가 발생했다 방법 1settings > File Encodins에 들어가서다음 부분을 모두 UTF-8로 변경한다 방법 2Help > Edit Custom VM Options... 에 들어가서 -Dfile.encoding=UTF-8-Dconsole.encoding=UTF-8 두개를 추가한 다음 인텔리제이를 재시작 한다 방법 3Gradle을 rebuild 한다  출처https://da-nyee.github.io/posts/intellij-console-encoding-issue/
[Java] 내부 클래스(Inner Class)
·
Language/Java
들어가기 전에.. 내부 클래스는 클래스 내에 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다 내부 클래스는 사용 빈도가 높지 않으므로 내부 클래스의 기본 원리와 특징을 이해하는 정도까지만 학습해도 충분하다 내부 클래스란? 클래스 내에 선언된 클래스 클래스 안에 다른 클래스를 선언하는 이유는 두 클래스의 관계가 긴밀하기 때문 내부 클래스를 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근 할 수 있고 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다(캡슐화)는 장점이 있다 class A { ... class B { //내부 클래스 } ... } 이 때, 내부 클래스인 B는 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않는 것이어야 한다 내부클래스의 종류와 특징 인스턴스 클..
[Java] 인터페이스
·
Language/Java
인터페이스란 일종의 추상클래스 추상클래스처럼 추상메서드를 갖지만 일반 메서드 또는 멤버변수를 가질 수 없다 오직 추상메서드와 상수만을 가질 수 있음 그 자체만으로 사용되기 보단 다른 클래스를 작성하는데 도움을 주는 목정으로 작성 인터페이스 작성 키워드로 class 대신 interface를 사용함 또한 interface에서도 클래스와 같이 접근제어자로 public 또는 default를 사용할 수 있다 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 일반적인 클래스의 멤버들과 달리 인터페이스 멤버에는 다음과 같은 제약사항이 있다 모든 멤버변수는 public static final 이어야 하며, 이를 생략..
[Java] 객체지향 프로그래밍 - 다형성과 추상클래스
·
Language/Java
다형성(polymorphism) 다형성이란 객체지향에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미 자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 함 즉, 자식 클래스의 인스턴스를 부모 타입의 참조변수로 참조하는 것이 가능 Class Tv { boolean poser;//전원상태(on/off) int channel;//채널 void power() { power = !power; } void channelUp() { power = !power; } void channelDown() { power = !power; } } Class CaptionTV extends Tv { String text;//캡션을 보여주기 위한 문자열 void caption() { //...내용..
[Java] 객체지향 프로그래밍 - 제어자
·
Language/Java
제어자 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근 제어자 public protected default private 그 외 static final abstract native, transient, synchronized, volatile, strictfp 클래스나 멤버변수와 메서드에 주로 사용되며, 여러 제어자를 조합하여 사용하는 것이 가능 단, 한번에 네 가지 중 하나만 선택해서 사용가능 즉, 하나의 대상에 대해서 public과 private을 함께 사용할 수 없다 static - 클래스의, 공통적인 인스턴스 변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값을 유지하지만, 클래스변수(static 멤버 변수)는 인스턴스에 관계없이 같은 값을 갖는다 ..
[Java] 객체지향 프로그래밍 - package와 import
·
Language/Java
패키지 패키지란 클래스의 묶음이다 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능 자신만의 패키지 체계를 유지함으로써 다른 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다 클래스의 실제 이름에는 패키지명이 포함되어있다 ex) String 클래서의 실제 이름은 java.lang.String - java.lang 패키지에 속한 클래스라는 의미 클래스가 물리적으로 하나의 클래스파일(.clas) 인 것과 같이 패키지는 물리적으로 하나의 디렉토리 즉 어떤 패키지에 속한 클래스는 해당 디렉토리에 존재하는 클래스 파일(.class)이어야 ..