web 6

[AWS] aws에 spring-boot 배포하기

Springboot Jar 파일 배포 aws t2.micro에 구현한 프로젝트를 jar파일로 배포해 보자 . 이때 nginx로 로드밸런싱도 도전했다. aws 배포 방법 먼저, t2.micro 인스턴스를 하나 만들어 둔 상태이다. Gradle로 jar 파일 생성 및 putty에 전송 1. IntelliJ에서 bootJar을 통해서 jar 파일을 만들어준다 2. Putty로 ec2에 접속한다. 3. git clone으로 프로젝트를 다운받는다. 4. jar파일이나 war파일은 업로드하면 안되기 때문에 Filezila를 통해서 받아야한다. jar 파일 실행 1. gradlew가 없어서 만들고 다시 github에 업로드한다. gradle init #gradle초기화 진행 gradle wrapper 2. 깃클론 및..

Back-end/Aws 2021.07.28

[Socket] Socket 통신

Socket with Python Socket을 사용하게 된 이유 프로젝트를 진행하면서 컴퓨터 1대에는 감정인식, 다른 한대에는 답변 생성기로 부득이하게 나누어 진행했다. 기존에는 답변생성기에 웹 서버를 구현해서 만들었었는데, 감정인식을 하는 본래 우리 컴퓨터에 웹서버를 만들기 위해서 socket통신 방식을 선택했다. python Socket 사용 법 server.py import socket host = "127.0.0.1" #서버 ip주소 port = 8080 # 서버 포트 soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #tcp방식으로 연결 soc.bind((host, port)) soc.listen(5) #5개 까지 연결 가능 while(True..

Web 2021.07.28

[Authorization] OAuth 2.0

OAuth 2.0 용어 Resource Owner(user): 사용자-> google이나 facebook에 계정이 있고 내가 만든 사이트를 사용하고자 함 Resource Server: google이나 facebook 계정 data를 가지고 있음 Authorization Sever: google이나 facebook과 같은 곳 인증과 관련 된 서버 Mine(client): 내가 만든 서비스 등록 과정 client Id: 우리가 만드는 app의 식별자 client Secret: 절대로 노출되면 안되는 id에 대한 비밀번호 Authorized redirect URIs: 해당 주소로 authorized code가 전달됨 인증 과정 (Resource Owner의 승인) Resource Owner(user)가 Cli..

Web 2021.07.28

[SERVER] FLASK

flask flask 사용 이유 검색을 해보니 django보다 조금 더 가벼운 형태로 사용할 수 있다고 해서 선택하게 되었다. 실제로 사용해보니 문법도 파이썬이라서 간편하고 라우팅 하는 부분만 이해하면 간편하게 쓸 수 있었다. 개발 하는 내용 감정인식 기반의 답변 출력 챗봇 웹 형태로 제작 및 UX/UI 적용 > flask 코드 import os import json import numpy as np import torch from dialogLM.model.kogpt2 import DialogKoGPT2 from kogpt2_transformers import get_kogpt2_tokenizer from flask import Flask,request,Response,render_template ar..

Project/Python 2021.07.28

[HTTP] METHOD

HTTP 메소드 정리 > Http vs Https https가 http 보다 보안성이 더 보장된 버전 현재는 HTTP/1.1을 가장 많이 사용하고 있음 > Http Method 종류 GET: 리소스 조회 용도 -> `query`를 통해서 전달 POST: 요청 데이터 처리, 주로 등록에 사용 -> `메세지 바디`를 통해서 서버로 요청 데이터 전달 PUT: 리소스를 대체하고, 없는 경우 해당 리소스를 없으면 생성 -> 클라이언트가 리소스를 식별 PATCH: put과 다르게 리소스의 일부만 변경 DELETE: 리소스 삭제 > Http Method 속성 안전(Safe Methods) : 호출해도 리소스를 변경하지 않는다 멱등(Idempotent Methods) : 한번 호출하든 두 번 호출하든 결과가 같다 ->..

Web 2021.07.28

[JPA] jpa 1일차

JPA Day-1 진도 [생성 api ~ 조회 api] api 개발시 entity를 외부에 노출하거나, 파라미터로 받으면 안된다. entity를 그대로 사용하면 중간에 변동성 때문에 api 호출시 깨질 수 있다. DTO를 파라미터로 사용하여 받는다. 수정 api 개발시 command와 query를 분리하여 개발할 때 유지보수성이 증가한다. entity를 직접 반환하면 안된다 @JsonIgnore annotation을 사용하면 반환 시 없는 경우 나타나지 않는다. 다만 해당 어노테이션을 사용하는 것이 모든 케이스를 막기는 어렵다 DTO를 사용하여 반환해야한다. public Result membersV2() { List findMembers = memberService.findMembers(); //엔티티 ..

Back-end/Spring 2021.07.27