일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- c#
- 스프링부트
- AWS
- 게임
- jwt
- react
- node.js
- RiotAPI
- JSON
- IntelliJ
- MongoDB
- frontend
- 코딩
- 백준
- 스프링
- 깃
- 유니티
- express
- springboot
- 게임개발
- bcrypt
- 백엔드
- unity
- oAuth
- 프로그래밍
- spring
- OAuth2.0
- 파이썬
- netlify
- Python
- Today
- Total
목록스프링 (14)
Unwound Developer
이번에는 Post에 사용자가 좋아요를 누르는 것을 구현합니다. 처음에 Like라는 테이블을 하나 더 만들어서 어떤 멤버가 어떤 글을 좋아하는지에 대한 정보를 담은 형식으로 구현했습니다. 근데, 나중에 조회할 때를 생각해보니, 너무 비효율 적이더라구요. 예를 들면, 내가 어떤 글에 좋아요를 눌렀나를 검색해보려면.. 서버에 존재하는 모든 좋아요 목록을 전부 뒤져봐야 합니다. 생각해보니까 OneToMany라는 관계를 스프링부트 어노테이션으로 설정할 수 있더라구요.. 바로 찾아봤습니다. 실무에서 ManyToOne, ManyToMany는 사용을 권하지 않는다고 하더라구요! 애초에, OneToMany가 맞는 상황인거같긴한데 한 사용자가 여러 글을 좋아할 수 있으니까 OneToMany가 맞는 것 같습니다. @OneT..
이번엔 사용자의 프로필 이미지 설정 구현을 진행했습니다. 기존에 계획 했던것은, 사용자가 회원가입 시에 이미지 파일을 서버로 전송하면 직접 DB에 저장하는 것이었습니다. 그런데, 이미지 파일을 직접 주고 받는것도 그렇고 너무 많은 자원을 소비하기 때문에 별로 권장하지 않는 과정이라고 합니다. 때문에, 다음과 같은 과정으로 프로필 이미지를 설정했습니다. 사용자가 회원가입과 함께 프로필 이미지를 서버로 전달 서버는 서버 로컬 저장소에 프로필 이미지를 저장 DB에 이미지 파일의 정보를 저장 (이미지는 DB에 저장하지 않고, 저장 경로 등의 정보만 저장한다) 나중에 이미지를 불러올때, 이미지 파일의 저장 정보를 통해 서버 로컬 저장소에서 이미지를 불러옴 이미지는 서버 로컬 저장소에 저장하고, DB에는 이미지의 ..
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..
OAuth를 통해 구글 로그인을 구현해보려했습니다. 그런데, 구글링을 통해 본 정보들이 전부 똑같더라구요.. 그리고 OAuth를 사용하는 가장 기초적인 방법부터 알고싶은데, 생각보다 어려운 내용의 정보밖에 없었습니다. 어찌저찌 OAuth사용에 성공하긴했는데, 아주 기초적이라 실제로 개발하다보면 어떤 문제가 생길지 모르겠습니다. 우선, build.gradle에 추가해줘야할 dependencies입니다. //OAuth 라이브러리 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' 그리고 apllication.properties에 저번에 말했던 클라이언트 ID, 클라이언트 SECRET와 스코프가 필요합니다. 이제 저 정보들을 ..