- Today
- Total
목록Spring boot (16)
개발하는 고라니
[Spring Boot] WebSocket과 채팅 (2) - SockJS [Spring Boot] WebSocket과 채팅 (1) 일전에 WebSocket(웹소켓)과 SockJS를 사용해 Spring 프레임워크 환경에서 간단한 하나의 채팅방을 구현해본 적이 있다. [Spring MVC] Web Socket(웹 소켓)과 Chatting(채팅).. dev-gorany.tistory.com Spring Boot 환경에서 WebSocket을 이용해 채팅을 구현해보는 세번째 시간이다. 저번 포스팅에서 SockJS를 적용해 WebSocket을 지원하지 않는 브라우저에서 서버와 클라이언트 간 통신이 끊기지 않고 채팅 기능을 수행하는 것 까지 확인하였다. 다만 채팅방이 여전히 하나만 존재한다는 점이 아쉽게 느껴진다. ..
[Spring Boot] WebSocket과 채팅 (1) 일전에 WebSocket(웹소켓)과 SockJS를 사용해 Spring 프레임워크 환경에서 간단한 하나의 채팅방을 구현해본 적이 있다. [Spring MVC] Web Socket(웹 소켓)과 Chatting(채팅) 기존 공부 용도의 게시판(?)에 여러. dev-gorany.tistory.com 이전 게시글에 이어 업로드되는 글 입니다. 저번에 순수 WebSocket만 가지고 간단한 채팅을 구현해보았다. Firefox, Chrome, Edge, Whale에서는 동작을 확인하였다. 하지만 모바일 크롬 브라우저와 IE에서는 WebSocket이 동작하지 않았다. 이처럼 기껏 채팅을 하려고 만들었더니 브라우저에서 지원을 안해준다. 조금 정리하자면, 1. 모든..
일전에 WebSocket(웹소켓)과 SockJS를 사용해 Spring 프레임워크 환경에서 간단한 하나의 채팅방을 구현해본 적이 있다. [Spring MVC] Web Socket(웹 소켓)과 Chatting(채팅) 기존 공부 용도의 게시판(?)에 여러 기능을 추가하던 차, 관리자와 멤버 간 채팅 기능을 구현하고 싶었다. 채팅을 하려면 웹 소켓이 필요하다고 한다. 간단하게 구현하는 것은 어렵지 않으므로 dev-gorany.tistory.com 이때는 무작정 여러 블로그를 참고하면서 채팅이라는 기능을 구현하고 다뤄보는 것에 의의를 두었다. 이번에는 Spring Boot 환경에서 여러개의 채팅방을 구현하고, 채팅이 저장될 수 있게 하기까지를 우선 목표로 설정하고 좀 더 공부하며 진행해보고자 한다. WebSock..
Spring Security를 이용하면 로그인 페이지를 기본으로 제공해준다. 그 페이지의 모습은 다음과 같다. 이 때의 Security 설정은 어떤 모습일까? @Configuration @Log4j2 @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomUserDetailsService userDetailsService; @Bean PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } @O..
Spring Security를 적용하여 사용자를 등록해 로그인에 성공했다면, thymeleaf에서 사용자의 정보를 출력할 수 있다. 'th:'를 쓸 것 같지만, Thymeleaf 공식 docs를 보면 예상과 다르게 JSP에서 쓰던 taglib를 사용한다. Spring Security를 JSP와 함께 써본 사람은 알겠지만 'sec:authentication="" '와 같은 것을 사용했었다. Thymeleaf + Spring Security integration basics - Thymeleaf Have you switched to Thymeleaf but your login and error pages are still using JSP? In this article we will see how to co..
JPA(Java Persisitence API)를 이용해 개발을 진행하다 보면 여러가지 단어가 등장하는데, 접해본 것 중 잘 모르겠는 몇 가지를 알아보고자 한다. ORM JPA Entity Object Querydsl Type-Safe JPQL Query Method # ORM (Obejct Relational Mapping) ORM은 객체지향과 관련이 있다. '객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술'이라고 할 수 있다. 패러다임 입장에서 보면 '객체지향 패러다임을 관계형 패러다임으로 매핑해주는 개념'이라고 볼 수 있다. 객체지향에서 클래스는 관계형 데이터베이스의 테이블과 유사한 형태를 가지고 있다. 하나의 클래스는 다양한 타입(Type)의 데이터를 갖을 수 있는 하나의 데이터 집합체이고..
# JPQL JPQL(Java Persistence Query Language)는 JPA(Java Persistence API)의 일부로 정의된 플랫폼에 독립적인 객체지향 쿼리 언어이다. JPQL은 관계형 데이터베이스의 엔티티에 대한 쿼리를 만드는데 사용된다. JPA는 엔티티 객체를 중심으로 개발하므로 SQL을 사용하지 않는다. 하지만 검색쿼리를 사용할 때는 SQL을 사용해야 한다. SQL의 영향을 받아 SQL과 비슷하나, DB 테이블에 직접 접근하는 것이 아닌 JPA 엔티티에 동작한다. 그래서 JPQL의 쿼리에는 테이블이 아닌 엔티티에서 사용되는 컬럼의 이름을 사용해야 한다. * SQL : 데이터베이스 테이블을 대상으로 쿼리함 * JPQL : 엔티티 객체를 대상으로 쿼리함 # JPQL로 검색을? 웹 어..
# ORM과 JPA - JPA(Java Persistence API) Java Persistence API의 약자로 Java 언어를 통해 DB와 같은 영속 계층을 처리하고자 하는 스펙이다. JPA를 이해하기 위해 ORM(Object Relational Mapping)이라는 기술을 선행해야 한다. ORM을 Java 언어에 맞게 사용하는 '스펙'이다. 따라서 ORM이 조금 더 상위 스펙이되고, JPA는 Java 언어에 국한된 개념이라고 볼 수 있다. JPA는 단순한 스펙이기 때문에 해당 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다르게 된다. 다양한 프레임워크가 있지만 가장 유명한 것은 'Hibernate'이다. 기존 EJB에서 제공되던 Entity Bean을 대체하는 기술이다. ORM이..