분류 전체보기 186

JWT(양방향) 암호화 로그인 API 만들기

로그인 API 만들기     app.py에 삽입 from resources.user import UserLoginResourceapi.add_resource( UserLoginResource, '/users/login')  app.py 파일에 추가 from flask_jwt_extended import JWTManagerfrom config import Config# app = Flask(__name__) 아래에 추가# 환경변수 셋팅app.config.from_object(Config)# JWT 매니저 초기화jwt = JWTManager(app)# api = Api(app) 위에 추가      user.py에 삽입 from utils import check_password #4에서 삽입from flas..

RestFul API 2024.05.22

자바(Java)의 OOP(객체지향 프로그래밍) 개념

Object Oriented Programing : OOP(객체지향 프로그래밍) 객체지향 프로그래밍의 두 가지 주요 측면에는 클래스와 객체가 있다.클래스는 큰틀이며 클래스 안에 있는 것이 객체(인스턴스)이다.과일이 클래스면 / 사과 바나나 체리는 인스턴스(객체)클래스는 객체의 탬플릿이라고도 할 수 있다. - 변수와 함수의 묶음을 객체라고 한다.- 클래스를 가지고, 실제로 데이터를 만든다! => 객체 생성- 클래스는 틀이고 객체는 메모리에 데이터가 생성된 상태를 말한다. 객체지향 프로그래밍 => 데이터와 메서드를 모두 포함하는 객체를 만드는 것이다. ex) javavs) 절차적 프로그래밍 => 데이터에 대한 작업을 수행하는 절차나 메서드를 작성하여 사용하는 것이다. ex) C언어 객체지향 프로그래밍은 DR..

Java 2024.05.22

자바(Java)의 캡슐화(Encapsulation) 개념

Encapsulation 캡슐화  복합화 되는 것을 캡슐화라고 함자바에서 캡슐화는 민감한 데이터가 사용자에게 숨겨지도록 하는 것 입니다클래스 변수 특성 / 속성을 private로 선언변수 값에 엑세스하고 업데이트 하기 위한 get set 메소드를 제공한다 public class Person {    private String name;    //Getter 설정    public String getName(){        return name;    }    // Setter 설정    public void setName(String newName){        this.name = newName;    }}

Java 2024.05.22

자바(Java)의 조건문과 반복문 개념

continue : 건너뛴다break : 종료한다  조건문 (1) if 조건문 if : 지정된 조건이 참인 경우 실행할 코드블록을 지정else : 동일한 조건이 거짓인 경우 실행할 코드블록을 지정else if : 첫번째 조건이 거짓인 경우 테스트 할 새 조건을 지정 int a = 2; // a 가 1이면, 헬로우 출력 // a 가 2이면, Bye 출력 // a 가 3이면, Good 출력 // 다 아니면, end 출력 if(a == 1) { System.out.println("Hello"); } else if (a == 2){ System.out.println("Bye"); } else if (..

Java 2024.05.22

자바(Java)의 확대 캐스팅과 축소 캐스팅 개념

확대 캐스팅과 축소 캐스팅Java Type Casting유형 캐스팅은 하나의 기본 데이터 유형의 값을 다른 유형에 할당하는 것이다ex) (double)3  -> int값이지만 double로 만들어준다.확대 캐스팅 (자동[작은 글자를 큰 글자로 변환]): byte -> short -> char -> int -> long -> float -> double더 작은 크기의 유형을 더 큰 크기의 유형으로 전달할 때 확대 캐스팅이 자동으로 수행된다축소 캐스팅 (수동[큰 유형을 작은 유형으로 변환]): 값 앞에 괄호 안에 유형을 배치하여 수동으로 수행해야 한다double -> float -> long -> int -> char -> short -> byte - 캐스팅은 숫자끼리만 가능하다.

Java 2024.05.22

자바(Java) 변수와 배열(Array) 개념

변수: 데이터 값을 저장하기 위한 컨테이너이다. 아래와 같은 다양한 유형의 변수가 있다string : 텍스트int : -123 이나 123 같은 소수 없는 정수double : 3.84651나 -0.51 등과 같은 실수float : -19.99 또는 19.99 같은 소수점 이하의 부동 소수점char : 'a' 또는 'B' 와 같은 단일 문자boolean : true 또는 false 두가지 상태로 값을 저장primitive Date type- 8가지 기본 데이터 유형 byte    1 bytesshort   2 bytesint     4 bytesLong    8 bytesfloat   4 bytesdouble  8 bytesboolean 1 bitchar    2 bytes 원시값이 아닌 비 기본 데이터 ..

Java 2024.05.22

JWT 암호화(인증토큰) 사용하여 회원가입 API에 적용하기

https://codebunny99.tistory.com/93 MySQL DB와 Postman을 연동하여 회원가입 API 만들기이메일 형식이 올바른지 확인하기 위해 사용하는 라이브러리 설치 pip install email-validatorpip install passlibpip install psycopg2-binary   DB와 postman을 연동하는 방법은 아래 글을 참고한다  https://codebunnycodebunny99.tistory.com위 블로그 글을 먼저 보고 온다.     ***** 중요 ****** >  user_id가 노출되면 안되므로 user_id를 암호화하려고 한다.     JWT(JSON WEP TOKEN) 암호화 JWT는 양방향으로 암호화하는 방식으로, JWT_ACCE..

RestFul API 2024.05.22

MySQL DB와 Postman을 연동하여 회원가입 API 만들기

회원가입 API 생성하기 이메일 형식이 올바른지 확인하기 위해 사용하는 라이브러리 설치 pip install email-validatorpip install passlibpip install psycopg2-binary   DB와 postman을 연동하는 방법은 아래 글을 참고한다  https://codebunny99.tistory.com/87 MySQL DB를 RestFul API로 GET하기(DB에 있는 데이터 가져오는 API 만들기)Postman   GET의 Request는 Query String(Query Parameters)을 사용한다- offset : 0- limit : 25     DB 설계하기 코드 입력하고 실행하기 (비밀번호 부분 수정해서 입력한다)-- recipe_db 에만 전용으로 접..

RestFul API 2024.05.22

Hashing 알고리즘 : 단방향 암호화 실행하기 : utils 파일 만들기

Hashing 알고리즘 - Hashing알고리즘은 단방향 암호화로,  - 원본 데이터를 해시값으로부터 복원하는 것이 불가능하므로 보안이 중요한 분야에서 많이 활용된다. - 데이터 무결성 검사, 비밀번호 저장, 디지털 서명, 블록체인 등 다양한 분야에서 사용된다.  vscode 터미널 cmd에서 설치하기pip install email-validatorpip install passlibpip install psycopg2-binary    SALT를 config 파일에 만든다. (SALT는 random_state와 비슷한 개념으로, 노출되면 해킹될 수 있다.)SALT는 본인이 원하는대로 아무렇게나 지정하면 된다    utils.py 만들기from passlib.hash import pbkdf2_sha256f..

RestFul API 2024.05.22

Is_publish 컬럼을 update하여 "임시 저장" 기능의 API 만들기

is_publish라는 컬럼은 0은 공개되지 않았음을 뜻하고, 1은 공개되었음을 뜻한다 따라서 /publish 라는 path를 만들어서 is_publish 컬럼을 0또는 1로 업데이트 하여 공개된 글로 만들것인지, 아닌지를 결정하는 임시저장 기능을 API로 구현할 수 있다.     app.py 작성하기        recipe.py 작성하기 from flask import requestfrom flask_restful import Resourcefrom mysql_connection import get_connectionfrom mysql.connector import Errorclass RecipePublishResource(Resource): def put(self, recipe_id):..

RestFul API 2024.05.21