no image
[docker] docker랑 mysql 연결하기
2024-04-23T13:54:18.873+09:00 ERROR 30964 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.java.sql.SQLException: Access denied for user 'ssafy'@'14.50.47.17' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.exceptio..
2024.04.23
[CS Web] Authentication & Authorization
인증 (Authentication)ID와 비밀번호로 사용자 신원을 확인한다. 각 서비스에 사용자가 카카오계정으로 로그인할 수 있는 기능을 지원한다. 서비스에서 각 사용자가 식별할 수 있는 고유한 회원번호를 제공한다. 인가 (Authorization)사용자 개인정보와 같은 자원(Resource)에 대한 접근 권한을 획득한다. 사용자 동의를 바탕으로 사용자 정보나 기능에 대한 접근 권한을 토큰 형태로 서비스에 부여한다. * 토큰사용자의 로그인 인증 및 인가 정보를 담은 권한 증명으로, 소셜미디어 API 호출에 사용된다. 카카오의 경우, OAuth 2.0 표준 규격에 따라 Access token, Refresh token 두 종류의 토큰을 발급한다. Access token사용자 인증, 카카오 API 호출 권한..
2024.04.23
no image
[CS Web] OAuth 2.0
OAuth 2.0Open Authorization 2.0은 웹 및 애플리케이션 인증 및 권한 부여(인가)를 위한 개방형 표준 프로토콜이다. 이 프로토콜에서는 third-party 애플리케이션이 사용자의 리소스에 접근하기 위한 절차를 정의하고 서비스 제공자의 API를 사용할 수 있는 권한을 부여한다. 대표적으로 네이버, 구글, 카카오 로그인 등 소셜 미디어 간편 로그인이 있다. OAuth2.0 역할Resource Owner리소스에 대한 액세스 권한을 부여하는 사용자(엔티티)로, 클라이언트 인증(Authorize)하는 역할을 수행한다. 보통 사용자를 말한다. (사용자 != Client 아님)ClientOAuth 2.0을 사용해 리소스에 접근하려는 third-party 애플리케이션이나 서비스를 말한다. 보통 ..
2024.04.23
no image
[CS Web] Cookie & Session
Cookie클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시 Request Header를 넣어서 자동으로 서버에 전송한다 쿠키의 구성 요소이름값유효시간도메인경로 쿠키의 동작 방식1. 클라이언트가 페이지를 요청 (사용자가 웹사이트에 접근)2. 웹 서버에서 쿠키를 생성3. 생성한 쿠키를 HTTP 헤더에 포함 시켜 클라이언트에 응답4. 클라이언트가 쿠키를 가지고 있다가 다시 서버에 요청할 때 쿠키를 함께 전송5. 동일한 웹사이트 재방문 시 클라이언트 PC에 해당 쿠키가 있는 경우, 요청 페이지와 함께 쿠키를 전송 쿠키 ..
2024.04.11
no image
[CS Web] HTTP Status Code
웹 브라우저 주소창에 https://www.naver.com을 입력하고 엔터를 누르면 웹 클라이언트와 웹 서버 사이에 HTTP 연결이 맺어지고 웹 클라이언트는 웹 서버에 HTTP 요청 메시지를 보낸다. 웹 서버는 요청에 따른 처리를 진행한 후, 그 결과를 웹 클라이언트에 HTTP 응답 메시지로 보내는데, 이러한 요청과 응답 과정이 있어서 우리가 웹을 사용할 수 있는 것이다. 서버에서의 처리 결과는 응답 메시지의 상태 라인에 있는 상태 코드(Status code)를 보고 파악할 수 있는데, 첫 번째 숫자는 HTTP 응답의 종류를 구분하는데 사용하며, 나머지 2개의 숫자는 세부적인 응답 내용 구분을 위한 번호이다. 현재 100 ~ 500번 대의 상태 코드가 정의되어 있고, 첫 번째 숫자를 기준으로 상태 코드..
2024.04.11
no image
[CS Web] HTTP Request Method
HTTP 요청 방법GETPUTPOSTDELETEPATCHHEADOPTIONSTRACECONNECT DELETE지정된 리소스 삭제비안정성을 가지므로, DELETE 요청 시 클라이언트를 인증/인가에 필요한 정보들을 함께 보내야함URL query string parameter인증에 필요한 username, id, password 등 민감 정보가 그대로 노출될 수 있으므로 보안상 좋진 않다.server log에 password가 평문 그대로 저장될 수 있다.브라우저 히스토리에 url이 저장될 수 있다.Google Analytics 같은 애플리케이션에 Referer 헤더들로 URL이 전달되며, 민감정보가 그대로 드러날 수 있다.Request Body parameter민감 정보가 URL에 직접 노출되지 않는다는 점..
2024.04.11
no image
[CS Web] REST
REST API다양한 테스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신하기 위해 등장했다. 여기서 REST란, Representational State Transfer의 약자로, 자원을 이름으로 구분해 해당 자원의 상태를 주고받는 모든 것을 말하며, API는 Application Programming Interface의 약자로, 컴퓨터의 기능을 실행시키거나 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 말한다. => 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스이다. 따라서, REST API는 REST를 기반으로 만들어진 API로, 클라이언트와 서버간의 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교..
2024.04.11
no image
[CS WEB] Web Server & WAS
Web Server클라이언트로부터 HTTP 프로토콜 요청을 받아 HTML 문서와 같은 정적 웹 페이지를 응답해주는 소프트웨어정적이란, HTML, CSS, Java Script, 이미지, 파일 등 즉시 응답이 가능한 컨텐츠들을 말한다.대표적으로 Apache, Ngingx가 있다.    WASWeb Application Server의 준말이며, Web Server + Web Container를 말한다.WAS를 그냥 Web Container, Servlet Container라고도 한다.여기서 Web Container란 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말한다. WAS는 Web Server 단독으로는 처리할 수 없는 DB 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다.브라우저에게..
2024.04.11
no image
[Jira] Mattermost에 일정 시간마다 알림보내기
구현 require 필요한 모듈들을 가져옴 node-mattermost : Mattermost에 메시지를 보내기 위한 모듈 fs : 파일 시스템 모듈, 프로필 사진 파일을 읽어올 때 사용 node-schedule, node-cron : 작업 스케줄링을 위한 모듈 //app.js const Mattermost = require('node-mattermost'); const fs = require("fs"); const schedule = require('node-schedule'); const cron = require('node-cron'); mattermost const mattermost = new Mattermost("mattermost webhook uri 적어주시면 됩니다."); 저는 incom..
2024.04.05