AWS S3를 이용해 파일업로드 기능을 구현해보자 ❕ 지난 글에서 S3 버킷을 생성하고 권한을 설정했다. 이번에는 파일 업로드하는 기능을 코드로 구현해보려고 한다. AWS S3 - 개념 및 버킷 설정AWS에서 제공하는 서비스인 S3를 이용해보자❕ 1. AWS S3(Simple Storage Service) S3는 AWS에서 제공하는 클라우드 기반의 객체 스토리지 서비스이다. 이미지, 동영상 및 여러 형태의 파일을 저장하고 관리chchaego.tistory.com 1. 구현구현 환경SpringMaven 1-1. 의존성 추가 및 application.properties 설정pom.xml org.springframework.cloud spring-cloud-starter-aws 2.2.5..
AWS에서 제공하는 스토리지 서비스 S3를 이용해보자❕ 1. AWS S3(Simple Storage Service)S3는 AWS에서 제공하는 클라우드 기반의 객체 스토리지 서비스이다. 이미지, 동영상 및 여러 형태의 파일을 저장하고 관리하는 파일 서버 역할을 한다.S3를 이용하면 이미지나 html 파일 등 정적 리소스들을 URL만으로 호출해서 사용할 수 있다. S3는 뛰어난 확장성, 데이터 가용성, 보안, 성능을 제공하는 객체 스토리지 서비스이다.원하는 만큼 데이터를 저장하고 보호할 수 있다.저장된 파일에 접근 권한을 지정할 수 있어 무단 접근을 막을 수 있다.많은 사용자가 접속해도 이를 감당하기 위해 시스템적인 작업을 하지 않아도 된다.최대 5TB의 데이터를 저장할 수 있다.버전관리 기능을 통해 ..
JWT 토큰 인증 방식에 대해 알아보자 ❕ 오늘날 많은 서비스들이 JWT를 이용한 토큰 인증 방식으로 사용자들의 인증/인가를 확인한다. JWT란 무엇이며 어떤 방식으로 인증에 사용되는지 공부하려고 한다. 1. JWT (Json Web Token)Json Web Token의 약자로, 인증에 필요한 정보들을 암호화시킨 Json 토큰을 의미한다. JWT는 HTTP header에 담겨 전달된다. JWT는 Json 데이터를 Base64로 인코딩하여 직렬화하고, 토큰 내부는 위변조 방지를 위해 개인키(private key)를 통한 전자서명이 들어있다. 서버는 인증된 클라이언트에게 JWT토큰을 발급해주고, 클라이언트는 매 요청마다 JWT를 HTTP header에 담아 서버에게 전송한다. 그럼 서버는 개인키를 통..
인증 방식에 사용되는 Cookie, Session, Token에 대해 공부해보자 ❕ 서버가 클라이언트의 인증을 확인하는 방법으로 쿠키, 세션, 토큰 인증 방식이 사용된다. 오늘날 많은 서비스들은 토큰 인증 방식인 JWT를 이용하는데, 왜 이 방식을 사용하는지를 이해하기 위해 쿠키, 세션, 토큰 인증 방식에 대해 먼저 정리해보려고 한다. 1. Cookie (쿠키)쿠키는 클라이언트의 브라우저에 저장되는 작은 데이터 조각이다. 서버가 클라이언트에게 쿠키를 발급해주면, 클라이언트 브라우저에 쿠키가 저장된다. 이후 클라이언트가 서버에 리소스를 요청할 때마다 저장된 쿠키를 담아 보낸다.쿠키는 HTTP Header를 통해 전달되며, 브라우저에 Key-Value 형태의 문자열로 저장되어있다. 개발자 도구 > Ap..
Java를 실행시키는데 필요한 JVM에 대해 공부해보자 ❕ 1. JDK와 JREJava 프로그램은 JVM위에서 실행되는데, JVM은 JDK나 JRE를 설치해 사용할 수 있다. JDK (Java Development Kit)Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK이다.Java로 개발할 때 필요한 라이브러리들과 javac, javadoc 등의 개발 도구들을 포함하고, Java 프로그램을 실행시키기 위한 JRE도 포함되어 있다. 용도에 따라 다양한 배포판을 제공하는데, 대표적인 3가지 배포판은 다음과 같다.Java SE (Standard Edition)표준 배포판. PC 응용프로그램과 서버 응용프로그램의 개발 환경이다.Java EE (Enterprise Edition)기업용 ..
웹 스토리지에 대해 공부해보자 😎 저장해야 할 데이터가 영구히 사용되지 않거나, 유실되도 괜찮다면 서버 단에 저장하는게 낭비일 수 있다. 이 경우 브라우저에 저장하는 방법인 웹 스토리지를 사용하면 된다. 웹 스토리지 객체는 쿠키와 다르게 서버로 전송되지 않으며, 브라우저 저장 공간에 key-value 형태로 저장된다. 구현하던 프로젝트에서 사용자마다 항목 리스트에서 특정 항목을 즐겨찾기 설정할 수 있었는데, 이 즐겨찾기 데이터는 다른 사용자들에게 공유되지 않을 값이고 유실되도 괜찮다고 생각해 웹 스토리지에 저장하는 방법을 택했다. 1. 개념웹 스토리지는 HTML5 이후 브라우저에서 제공하는 자바스크립트 API이며 `window` 객체를 상속받는다. 종류로는 LocalStorage와 SessionS..
Web Sever와 WAS의 개념을 공부하고 차이점을 알아보자 ❕ 1. Static & Dynamic 페이지 Static Pages (정적 페이지)변하지 않는 페이지DB에서 정보를 가져오거나 별도의 서버 처리를 하지 않고 사용자들에게 전달하는 페이지모든 사용자에게 동일한 페이지html, css, js, image 파일과 같이 컴퓨터에 저장된 파일들을 요청하는 페이지 Dynamic Pages (동적 페이지)변하는 페이지DB에서 정보를 가져오거나 서버에서 로직 처리 후 사용자들에게 보여줘야 하는 페이지사용자마다 다른 페이지 2. Web Server & WAS 개념Web Server클라이언트의 요청을 받아 정적인 컨텐츠(html, css, js 등)를 제공해주는 서버클라이언트가 동적인 컨텐츠를 요청했..
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조회, 수정, 삭제하는 등 RDBMS를 조작하는데 사용되는 언어이다. NoSQL은 Not Only SQL를 뜻하며 관계형 데이터베이스 모델과는 다른 형태의 데이터를 저장 및 관리하는 방식을 제공한다. NoSQL 데이터베이스에서도 데이터를 관리하고 조작하는데 사용되는 특정 언어가 존재하며, 다양한 데이터 모델을 가지고 있다. 1. 탄생2000년대에 들어서 인터넷의 발전과 SNS 서비스들이 활성화되면서 효율적으로 대규모 데이터를 저장하고 조회하는 기술이 요구됐다. RDB는 정형화된 데이터를 저장하기 때문에 복잡하고 한정된 데이터를 저장하는데는 유용했지만, 이런 대규모 데이터를 저장하는데 어려움이 있었다. RDB의 한..
데이터베이스 정규화에 대해 공부해보자 ❕ 정규화는 이상현상이 있는 릴레이션을 분해하여 중복을 없애고 구조화하는 과정이다. 정규화 과정을 통해 삽입/갱신/삭제 시 발생할 수 있는 이상현상들을 방지할 수 있으며 데이터를 효율적으로 관리할 수 있다. 1. 이상현상(Anomaly)삭제 이상 : 데이터 삭제 시 원하지 않는 값들이 연쇄적으로 삭제되는 현상삽입 이상 : 데이터 삽입 시 원하지 않는 값들이 삽입되는 현상수정 이상 : 데이터 수정 시 데이터의 일부만 수정되는 현상 학생정보 테이블에 학번, 이름, 학과, 강의명, 강의실 컬럼이 존재한다. 지금처럼 정규화되지 않은 테이블에서는 다음과 같은 이상현상이 발생한다. (삭제 이상) 학생과 관련된 데이터를 제거하려고 한다면, 강의명과 강의실에 대한 데이터도 제..
OAuth 2.0으로 소셜로그인 구현하기 Version2 ❕ 지난 소셜로그인 구현 : V1. OAuth2.0으로 소셜로그인 구현하기 [Spring] V1. OAuth2.0으로 소셜로그인 구현하기소셜 로그인에서 사용되는 프로토콜인 OAuth에 대해 학습하고 Spring에서 구현해보자 ❕ 1. OAuth (Open Authorization) ?많은 사이트에서 소셜 계정을 기반으로 회원가입 & 로그인을 할 수 있는 기능이chchaego.tistory.com 소셜 로그인은 크게 1. 인가 요청 2. 토큰 요청 3. 사용자 정보 요청을 하는 과정이 필요하다. 지난번 구현했을 때는 인가 요청의 결과로 받은 인가 코드(Authorization code)를 사용자단에 넘긴 후, 그 값을 Client(내 서버)에게..