티스토리

라바덕
검색하기

블로그 홈

라바덕

alsxor5.tistory.com/m

찐 광기 개발로그

구독자
1
방명록 방문하기

주요 글 목록

  • [Spring] Spring Websocket으로 채팅서버 구현하기 (2) 저번 시간에 만든 Spring Websocket을 이용한 채팅서버를 고도화해 보도록 하겠습니다. https://alsxor5.tistory.com/85 [Spring] Spring Websocket으로 채팅서버 구현하기 (1) Spring Websocket을 이용하여 채팅서버를 구현해 보겠습니다. 일반적인 http통신을 하는 서버들과는 달리 채팅서버를 구현하기 위해서는 socket 통신을 하는 서버가 필요합니다. 통상적으로 http통신은 alsxor5.tistory.com 현재까지 구현된 Websocket 통신은 ws://localhost:8080/ws/chat에 연결된 클라이언트 끼리만 메시지 통신이 가능합니다. 쉽게 말해서 채팅방이 하나인 채팅 서버일 뿐인거죠. 이번 시간에는 채팅 서버를 고도화 시켜.. 공감수 1 댓글수 0 2023. 1. 27.
  • [Spring] Spring Websocket으로 채팅서버 구현하기 (1) Spring Websocket을 이용하여 채팅서버를 구현해 보겠습니다. 일반적인 http통신을 하는 서버들과는 달리 채팅서버를 구현하기 위해서는 socket 통신을 하는 서버가 필요합니다. 통상적으로 http통신은 client의 요청이 있을 때만 서버가 응답하고 연결을 종료하는 단방향 통신입니다. 따라서 클라이언트가 서버에 접속해 콘텐츠를 요청하고 결과를 받아 소비하는 구조의 서비스에서 많이 사용됩니다. 그에 반해 socket통신은 Server와 client가 지속적으로 연결을 유지하고 양방향으로 통신을 하는 방싱입니다. 주로 채팅 같이 실시간 서비스에서 많이 사용됩니다. Websocket이란? Websocket은 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜입니.. 공감수 0 댓글수 0 2023. 1. 26.
  • [Spring] Spring MVC 와 RestFul 방식의 차이점 Spring MVC란? Spring MVC는 HTTP Request를 처리하는 부분인 Controller, 데이터를 처리해 정제된 데이터를 넣는 Model, 정제된 데이터를 활용해 사용자에게 보여지는 View에 대한 역활 분리가 되어있다. Spring MVC를 사용하면 Model, View, Controller 모두를 인터페이스를 사용해 규격화 해놓고 확장성 있게 웹 애플리케이션을 설계할 수 있다. RestFul이란? RestFul이란 REST의 원리를 따르는 시스템을 의미한다. 하지만 REST를 사용했다고 해서 모두가 RestFul 한 것은 아니다. REST API의 설계 규칙을 올바르게 지킨 시스템을 RsetFul하다 말할 수 있으며 모든 CRUD 기능을 POST로 처리하는 API 혹은 URI 규칙을.. 공감수 0 댓글수 0 2023. 1. 24.
  • [Spring] 게시판 수정 로직 (다중 파일 업로드) 이번에 프로젝트를 진행하면서 게시판 수정 로직을 구현하였는데요 고려해야 될 사항이 많아서 생각보다 여려움을 겪었습니다.. 하하핳 나중에 다시 고통을 겪고 싶지 않아서 어려웠던 부분을 기록 해놓으려 합니다. 먼저 게시판 수정 로직을 구현하면서 고려했던 부분부터 정리해 보겠습니다. 1. 기존 이미지를 삭제하지 않으면서 새로운 이미지를 추가하는 경우 2. 기존 이미지를 삭제하지 않으면서 새로운 이미지를 추가하지 않는 경우 3. 기존 이미지를 삭제하면서 새로운 이미지를 추가하는 경우 4. 기존 이미지를 삭제하면서 새로운 이미지를 추가하지 않는 경우 이 네가지가 기본적으로 고민을 해야했던 부분이고 추가로 고민한 부분은 아래와 같습니다. 추가로 고민한 부분 1. 썸네일을 변경할 때 기존에 등록했던 이미지에서 변경한.. 공감수 0 댓글수 0 2023. 1. 20.
  • [Spring] ResponseEntity 응답 데이터에 ResponseEntity 적용 MemberController 클래스의 코드를 리뷰해보면서 어떤 부분을 개선할 수 있을지 알아보도록 하겠습니다. package com.codestates.member; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(value = "/v1/members", produces = {MediaType.APPLICATION_JSON_VALUE}) public class MemberController { @PostMapping public String postMember(@RequestParam.. 공감수 0 댓글수 0 2023. 1. 3.
  • [AWS] EC2 메모리 부족현상 해결법 개인 기록용 EC2 메모리 부족현상 해결방법 dd 명령어를 통해 swap 메모리를 할당 sudo dd if=/dev/zero of=/swapfile bs=128M count=16 128씩 16개의 공간을 만드는 것이여서 우리의 경우 count를 16으로 할당하는 것이 좋다. 즉, 2GB정도 차지하는 것이다. 스왑 파일에 대한 읽기 및 쓰기 권한을 업데이트 $ sudo chmod 600 /swapfile Linux 스왑 영역을 설정 $ sudo mkswap /swapfile 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 만듬 $ sudo swapon /swapfile 절차가 성공했는지 확인 $ sudo swapon -s /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 활성화.. 공감수 0 댓글수 2 2023. 1. 3.
  • [Spring] Kakao 지도 Api 프로젝트에 적용해보기! 개인 프로젝트로 진행하고 있는 약국 길찾기 서비스에 Kakao 지도 API를 적용해 보겠습니다. 먼저 kako developers 공식사이트에 들어가보면 https://developers.kakao.com/docs/latest/ko/local/dev-guide 사진과 같이 어떤 방법으로 요청을 보내야할지 상세히 알려줍니다. Response 형식 Response 형식도 사진과 같이 상세히 알려줍니다! 외부 Api 사용하기 전에 반드시 검증해야 할 내용들 1. API 호출제한 반드시 확인할 것!! https://developers.kakao.com/terms/latest/ko/site-policies#quota Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오.. 공감수 0 댓글수 0 2022. 12. 11.
  • [Spring] 도커를 이용한 다중 컨테이너 환경 구성해보기 Docker란 리눅스 컨테이너 기반으로 하는 오픈소스 가상화 플랫폼이다. 가상화를 왜 사용할까? 이제는 향상된 컴퓨터의 성능을 더욱 효율적으로 사용하기 위해 가상화 기술이 많이 등장하였다. 서버 관리자 입장에서 CPU 사용률이 10%대 밖에 되지 않는 활용도가 낮은 서버들은 리소스 낭비일 수 밖에 없다. 그렇다고 모든 서비스를 한 서버안에 올린다면 안정성에 문제가 생길수도 있다. 그래서 안정성을 높이며 리소스도 최대한 활용할 수 있는 방법으로 나타난게 서버 가상화이다. 대표적인 가상화 플랫폼으로는 VM이 있다. 컨테이너란? 컨테이너는 Host OS 상에서 리소스를 논리적으로 구분하여 마치 별도의 서버인 것 처럼 사용할 수 있게 하는 기술이다. Legacy 하나의 물리 서버에 애플리케이션 배포 애플리케이션.. 공감수 0 댓글수 2 2022. 12. 10.
  • [Spring] Service Class Test MemberService Class의 Test 클래스 작성 MemberService.class MemberServiceTest.class join Method Test 애너테이션 설명 @Test : 해당 메서드를 테스트 대상으로 지정한다. @DisplayName : console창 옆 Test 결과를 확인하는 창에서 어떤 테스트인지 이름을 지정할 수 있다. Given - When - Then Pattern Given 테스트를 위해 준비하는 과정이다. 테스트에 사용되는 변수, 입력 값 등을 정의하거나 Mock 객체를 정의하는 구문도 Given에 포함된다. When 실제로 액션을 하는 테스트를 실행하는 과정이다. join메서드를 검증하는 테스트이기 때문에 given 단계에서 member 객체를 생성해주고 w.. 공감수 1 댓글수 0 2022. 10. 4.
  • [Spring Security] JWT 인증 JWT(Json Web Token)란? JWT(Json Web Token)는 데이터를 안전하고 간결하게 전송하기 위해 고안된 인터넷 표준 인증 방식으로써 토큰 인증 방식에서 가장 범용적으로 사용되며 JSON 포맷의 토큰 정보를 인코딩 후, 인코딩 된 토큰 정보를 Secret Key로 서명(Sign)한 메시지를 Web Token으로써 인증 과정에 사용한다. JWT의 구조 1. Header - 어떤 종료의 토큰인가? - 어떤 알고리즘으로 암호화 하는가? 2.Payload - 유저의 정보 - 권한을 부여 받았는가? - 기타 필요한 정보 3.Signature -Header, Payload를 base64인코딩한 값과 salt값의 조합으로 암호화된 값 JWT인증의 장점 1.Statelessness & Scalabi.. 공감수 1 댓글수 0 2022. 9. 26.
  • [Spring] 엔티티 간의 연관 관계 매핑 연관 관계 매핑이란 엔티티 클래스 간의 관계를 만들어주는 것이다. (JPA 방식으로) 연관 관계 매핑은 참조하는 방향성을 기준으로 생각했을 때 단반향 연관 관계와 양방향 연관 관계로 구분할 수 있다. 그리고 엔티티 간에 참조할 수 있는 객체의 수에 따라서 일대다(1:N), 다대일(N:1), 다대다(N:N), 일대일(1:1)의 연관 관계로 나눌 수 있다. 그림을 보면 Member 클래스는 Order 클래스의 객체를 포함하고 있는 List 객체를 가지고 있지만, Order 클래스는 Member 클래스에 대한 참조 값이 없으므로 Order 입장에서는 Member 정보를 알 수 없다. 이처럼 한쪽 클래스만 다른 쪽 클래스의 참조 정보를 가지고 있는 관계를 단방향 연관 관계라고 한다. 양쪽 클래스 모두 서로의 객.. 공감수 0 댓글수 0 2022. 9. 1.
  • [Spring] Entity Mapping 엔티티와 테이블 간의 매핑 import lombok.Setter; import javax.persistence.Id; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Table; @Getter @Setter @NoArgsConstructor @Entity @Table public class Member { @Id @GeneratedValue private long memberId; private String email; public Member(String email){ this.email = email; } } @Entity 매핑 애너테이션을 이용해 엔티티 클래스와 테이블을 .. 공감수 9 댓글수 0 2022. 9. 1.
  • [Spring] JPA(Java Persistence API) JPA는 Java에서 사용하는 ORM(Object - Relational Mapping) 기술이다. JPA를 학습한다라고 하면 JAP는 Java의 인터페이스로 사양이 정의되어 있기 때문에 JPA라는 표준 사용을 구현한 구현체에 대해서 학습한다라고 생각하면 된다. Hibernate ORM JPA에서 정의해둔 인터페이스를 구현한 구현체로써 JPA에서 지원하는 기능 이외에 Hibernate 자체적으로 사용할 수 있는 API 역시 지원하고 있다. 데이터 엑세스 계층에서 JPA는 상단에 위치하고 있고 JPA의 구현체인 Hibernate ORM을 통해서 데이터의 저장, 조회 등의 작업이 진행된다. 이 때 Hibernate ORM은 내부적으로 JDBC API를 이용해서 데이터베이스에 접근하게 된다. JPA에서 P는 .. 공감수 0 댓글수 0 2022. 8. 31.
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.