일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- 스프링
- 게임개발
- react
- springboot
- 유니티
- 백엔드
- Python
- AWS
- bcrypt
- 프로그래밍
- IntelliJ
- RiotAPI
- 깃
- MongoDB
- 게임
- OAuth2.0
- spring
- frontend
- node.js
- JSON
- netlify
- 코딩
- c#
- 백준
- jwt
- oAuth
- 스프링부트
- express
- unity
- Today
- Total
목록전체 글 (84)
Unwound Developer
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cbXank/btrZjeZGdnk/uCYTURdRKuZCn7IUMC1KI1/img.png)
이번엔 사용자의 프로필 이미지 설정 구현을 진행했습니다. 기존에 계획 했던것은, 사용자가 회원가입 시에 이미지 파일을 서버로 전송하면 직접 DB에 저장하는 것이었습니다. 그런데, 이미지 파일을 직접 주고 받는것도 그렇고 너무 많은 자원을 소비하기 때문에 별로 권장하지 않는 과정이라고 합니다. 때문에, 다음과 같은 과정으로 프로필 이미지를 설정했습니다. 사용자가 회원가입과 함께 프로필 이미지를 서버로 전달 서버는 서버 로컬 저장소에 프로필 이미지를 저장 DB에 이미지 파일의 정보를 저장 (이미지는 DB에 저장하지 않고, 저장 경로 등의 정보만 저장한다) 나중에 이미지를 불러올때, 이미지 파일의 저장 정보를 통해 서버 로컬 저장소에서 이미지를 불러옴 이미지는 서버 로컬 저장소에 저장하고, DB에는 이미지의 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXfrLH/btrYyUuBzI5/bKdak2iondmDypQBuBTQr1/img.png)
node.js로 로그인을 구현했을 때와 같은 방식으로 로그인을 구현했습니다. 개발 환경이 스프링부트라서 문법차이는 있지만, 과정은 일맥상통합니다. 우선 build.gradle에 dependencies{ ... implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt:0.9.1' } 를 추가합니다. 전자는 Bcrypt사용에, 후자는 JWT사용에 필요한 라이브러리를 사용가능하게 해줍니다. application.properties에는 JWT Secretkey를 입력합니다. 나중에 jwt 토큰을 해독할 때 필요합니다. # JWT SecretKey jwt.password = {J..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXp8Qf/btrXLqOKCAY/FopiNZwBoZZQH3LGcIyLK1/img.png)
OAuth를 통해 구글 로그인을 구현해보려했습니다. 그런데, 구글링을 통해 본 정보들이 전부 똑같더라구요.. 그리고 OAuth를 사용하는 가장 기초적인 방법부터 알고싶은데, 생각보다 어려운 내용의 정보밖에 없었습니다. 어찌저찌 OAuth사용에 성공하긴했는데, 아주 기초적이라 실제로 개발하다보면 어떤 문제가 생길지 모르겠습니다. 우선, build.gradle에 추가해줘야할 dependencies입니다. //OAuth 라이브러리 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' 그리고 apllication.properties에 저번에 말했던 클라이언트 ID, 클라이언트 SECRET와 스코프가 필요합니다. 이제 저 정보들을 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1ufME/btrXCi3iqEc/VtNCorotacfnZlpn34Rxl0/img.png)
이번에 스프링으로 제작하는 프로젝트에서는 구글 로그인을 사용해보려 했습니다. 요즘들어 구글, 카카오, 트위터 등 외부 애플리케이션 계정을 통해 로그인이 가능하도록 하는 곳이 많아졌어요. 혼자 대충 독학해보려했는데, 생각보다 복잡하고 개념부터 알아가야할 것 같아 https://www.inflearn.com/course/web2-oauth2 [무료] Web2 - OAuth 2.0 - 인프런 | 강의 생활코딩에서 제공하는 OAuth 관련 강의로, API 상호 연동에 대한 기술을 배울 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 해당 강의를 시청하는 중입니다. 우선 OAuth가 사용되는 이유부터 알아봤습니다. 내 앱 사용자의 다른 앱에서의 데이터를 사용하고 싶을 때 기존 방식으로..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nJqF2/btrWWr1BY2m/EYlXAbhJtgEYPEJDGCOLeK/img.png)
우선 DTO의 개념은 Data Transfer Object의 약자로, 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는 객체라고 합니다. 제가 이해한대로 쉽게 풀어보자면, 우선 도메인 모델에 대해서 얘기해야 합니다. 도메인은 그냥 데이터베이스에 저장할 테이블의 형태입니다. 도메인 클래스 안에는 테이블의 컬럼들, 각 컬럼들의 속성, 테이블 이름 등 테이블을 만들 때 필요한 정보들이 기록되어 있습니다. 현재 개발중인 별글 프로젝트를 예시로 들어보자면, 다음과 같은 형태입니다. 어노테이션으로 테이블임을 명시해주면, 클래스 내부에 컬럼들을 생성할 수 있습니다. NotNull속성을 넣거나, 따로 컬럼이름을 설정할 수 있고, default값을 설정할 수도 있습니다. 그냥 데이터베이스의 테이블이라고 생각하면 편..