본문 바로가기

분류 전체보기151

[JPA] 연관관계 매핑 참고 Spring Jpa 연관관계에 대해 설명된 블로그 참고 https://victorydntmd.tistory.com/208 [Spring JPA] 연관관계 매핑 연관관계 매핑엔티티( Entity )들은 대부분 서로 관계를 맺고 있습니다.예를들어 Category 엔티티와 Book 엔티티가 있을 때, Category에는 많은 Book을 갖는 관계를 갖고 있습니다.이렇게 엔티티들이 서로 victorydntmd.tistory.com 2023. 1. 3.
[채팅]오픈채팅 구현 과정(이슈&해결) 지금 진행하고 있는 프로젝트가 SNS기능을 담당하는만큼, 채팅도 가능하게 하면 어떨까 생각했다. 그래서 생각한 것이 오픈채팅인데, 우선은 스프링부트로 채팅서버를 구현하려면 웹소켓에 대한 이해가 필요했다. 웹소켓에 대한 이해 웹소켓은 실시간 양방향 데이터 통신이 필요한 경우에 이를 가능케하는 프로토콜이다. 기존의 단방향 HTTP프로토콜과 호환되어서 양방향 통신(full duplex)을 제공하며, 일반 소켓통신과 달리 HTTP 80번 포트를 사용하기에 통상 웹소켓(Websocket)이라고 불린다. 모든 HTTP 통신에서 클라이언트는 서버에 요청을 보내고, 서버는 그에 맞는 응답을 하며 브라우저와 연결을 끊는다. 이러한 HTTP만으로 원하는 정보를 송수신할 수 있었지만, 클라이언트가 먼저 요청하지 않으면 서버.. 2022. 12. 23.
[소셜로그인] 페이스북, 구글, 네이버, 카카오 구현 프로젝트에 open auth를 지원하는 4사(페이스북, 구글, 네이버, 카카오)에 대해 소셜로그인 기능을 추가해보았다. 각각의 개발자 센터에 들어가서 application을 만들고, client-id와 client-secret id를 받았다는 전제하에 진행할 것이다. 1. pom.xml에 oath 라이브러리 추가 org.springframework.boot spring-boot-starter-oauth2-client 2. application.yml설정 scope에 적힌 public_profile, email와 같은 명칭은 정해진 형식이니 개발자센터에서 확인해야 한다. scope에는 각 리소스 서버(구글, 카카오 등)의 user DB에서 가져오고 싶은 정보를 명시한다. 네이버, 카카오와 같은 경우는 pr.. 2022. 12. 20.
[채팅] @ServerEndpoint 사용 시 DI가 안되는 문제 문제 발생 웹소켓을 이용한 채팅을 구현하는 도중 내가 정의한 @ServerEndpoint을 붙인 ChatService에서 다른 객체를 주입하지 못하는 상황이 발생했다. 즉, 아래와 같이 chatRoomService를 불러오지 못한다. @RequiredArgsConstructor @Service @ServerEndpoint(value="/chatroom/{roomId}/mychat/{userId}") public class ChatService { private final ChatRoomService chatRoomService; 원인 분석 @ServerEndPoint가 붙은 클래스는 웹소켓이 연결될때마다 객체가 생성되기 때문에 @Autowired가 설정된 멤버가 정상적으로 초기화되지 않는다. @Compo.. 2022. 12. 12.
[JPA] 에러 could not initialize proxy - no Session 문제상황 시큐리티를 커스터마이징해서 로그인과정을 진행중에 could not initialize proxy - no Session http code 500 에러가 발생했다. UserDetailsService와 UserDetails에 대한 구현체를 작성하고, Controller에서 @AuthenticationPrincipal로 사용자 세션을 제대로 가져오나 확인하는 과정에서 문제발생. @GetMapping("/user/{id}/update") public String update(@PathVariable int id, @AuthenticationPrincipal PrincipalDetail principalDetail) { log.info("======================="); log.info(p.. 2022. 11. 19.
[개념 정리]10진수를 2진수로 변환하는 방법 정리 10진수를 2진수로 변환하는 방법을 3가지로 정리해보았다. 2로 나누었을 때의 나머지를 이용해서 구하기. shift연산자 이용하기. STL [bitset] 사용하기. 방법1 > 2로 나누었을 때의 나머지를 이용해서 구하기. ▶ stack을 사용해서 n이 살아있을 때까지 2로 나누어서 나머지를 넣었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include #include using namespace std; int main() { int n; cin >> n; stack s; while (n) { if (n % 2 == 1) { s.push(1); } else { s.push(0); } n /= 2; } while (!s.empty()).. 2022. 10. 27.