목록분류 전체보기 (200)
사이먼's 코딩노트

[Ajax, Stomp 기반 멀티 채팅방 구현]저번 '멀티 채팅방 (2)' 포스팅에서 Ajax 기반의 멀티 채팅방을 구현하였다.하지만, Ajax를 적용했을 때 불필요한 데이터 전달때문에 서버 부하가 생길 수도 있다는 단점이 있다.해당 부분을 해결하기 위해서 웹 소켓을 사용해 볼 예정입니다.웹 소켓을 사용하면 브라우저와 서버간에 서로 데이터 전달을 하지 않고, 브라우저는 서버에게만 전달, 서버는 브라우저에게만 전달하는 형식이기 때문에 부하가 생기는 단점을 막을 수 있다.Stomp가 바로 그 웹 소켓 방식 중 하나라고 생각하면 좋다. [Stomp란?]Simple/Stream Text Oriented Message Protocol의 약어로 웹 소켓 위에서 동작하는 문자 기반 메세징 프로토콜로써 클라이언트와 서..

[Ajax, Stomp 기반 멀티 채팅방 구현]저번 '멀티 채팅방 (1)' 포스팅에 이어 ChatRoom과 ChatMessage 관련 MVC를 모든 구현하였다면 이제 템플릿을 통해 화면을 구현하고 실제로 JavaScript에 Ajax를 적용하여 실시간으로 채팅이 되는 것을 확인해봅시다.전체 코드와 패키지 구조는 깃허브 리포지터리 주소를 통해 참고 부탁드립니다.리포지터리 주소 : https://github.com/psm817/chat_review GitHub - psm817/chat_reviewContribute to psm817/chat_review development by creating an account on GitHub.github.com [list.html 생성]먼저 전체 채팅방 리스트를 보여..

[Ajax, Stomp 기반 멀티 채팅방 구현]이번 포스팅에서는 Ajax, Stomp 기반의 멀티 채팅방을 구현해 볼 예정입니다.전체 코드를 포스팅할 순 없기 때문에 전체 구조와 코드를 확인하시려면 리포지터리 주소를 참고 부탁드립니다.해당 프로젝트는 SpringBoot v_3.3.0, Java 21 기반으로 세팅되어 있습니다.리포지터리 URL 주소 : https://github.com/psm817/chat_review GitHub - psm817/chat_reviewContribute to psm817/chat_review development by creating an account on GitHub.github.com [Ajax란?]Ajax는 Asynchronous JavaScript and XML의..

[REST API 적용]저번 'REST API (3)' 포스팅에 이어서 REST API를 적용하기 위한 코드를 작성해봅시다.게시물 등록을 위한 Article MVC를 설계한 다음, 이제 실제로 게시물 CRUD를 REST API로 적용해봅시다.전체 코드와 패키지 구조는 깃허브 리포지터리 주소를 통해 참고 부탁드립니다.리포지터리 URL 주소 : https://github.com/psm817/jwt_review GitHub - psm817/jwt_reviewContribute to psm817/jwt_review development by creating an account on GitHub.github.com [ArticleController 생성]게시물 등록, 조회, 수정, 삭제를 위해서 ArticleCo..

[REST API 적용]저번 'REST API (2)' 포스팅에 이어서 REST API를 적용하기 위한 코드를 작성해봅시다.전체 코드와 패키지 구조는 깃허브 리포지터리 주소를 통해 참고 부탁드립니다.리포지터리 URL 주소 : https://github.com/psm817/jwt_review GitHub - psm817/jwt_reviewContribute to psm817/jwt_review development by creating an account on GitHub.github.com [로그인 시 JwtProvider에 의해 토큰 생성]MemberController.java 클래스에서 login을 수행할 때 테스트 용으로 Token을 발급하기 위해서 아래와 같이 코드를 수정한다.SpringBoot가..

[REST API 적용]앞선 포스팅 'REST API (1)'에서는 개념 소개를 했다면, 이번에는 실제로 REST API를 적용하기 위해 코드에 적용해봅시다.구현된 코드는 저번 JWT 토큰 발급때 진행했던 리포지터리에서 작업을 이어갈 예정이기 때문에 전체 코드는 해당 리포지터리 주소를 통해 참고 부탁드립니다.리포지터리 URL 주소 : https://github.com/psm817/jwt_review GitHub - psm817/jwt_reviewContribute to psm817/jwt_review development by creating an account on GitHub.github.com [기본 세팅]먼저 REST API 적용을 하기 위해 build.gradle에 아래와 같이 시큐리티, 유효성..

[REST란?]REST는 인터넷과 같이 복잡한 네트워크 통신이 등장함에 따라, 이를 관리하기 위한 지침으로 만들어졌다.대부분의 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신을 해야한다.최근 서버 프로그램은 다양한 브라우저와 스마트폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야하기 때문에 이러한 멀티플랫폼에 대한 지원을 위해 서비스 자원에 대한 아키텍처를 세우고 이용하는 방법을 모색할 결과, REST에 관심을 가지게 되었다.REST는 Representational State Transfer의 약어로써 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다.HTTP URI를 통해 자원을 명시하고, HTTP Method(GET, P..

[JWT 토큰 발급]SpringBoot를 통해 JWT 인증 구현 코드를 구현하기 전에 다시 한번 JWT 인증의 내용을 정리해봅시다.서버가 최초로 접속하는 브라우저에게 쿠키의 세션 키 정보를 담는 방식으로 각각의 사용자를 구분한다.초창기 어플리케이션은 쿠키 기능이 없어 ID와 PW를 저장해두었다가, 모든 요청에 한 번에 응답했다.서버에서 신원확인용 토큰을 발급하여, 앱에서 사용하도록하면 해킹 발생 시에 PW를 바꾸지 않아도 된다.JWT 토큰은 정보를 담을 수 있고, 유효성 체크에 DB 조회를 수반하지 않는다.JWT 토큰을 만들 때 Secret key로 흔적을 남기고, JWT 토큰에서 정보를 얻을 때, Secret key로 그것이 오명되지 않았음을 인증한다.JWT 토큰은 한 번 만들면 만료시킬 수 없고, 그..

[인증과 인가]이번 포스팅에서는 웹 어플리케이션의 인증 방식에 대해서 몇 가지 알아보고자 합니다.인증 방식을 알아가기에 앞서 인증과 인가가 무엇인지, 웹 어플리케이션 인증에는 어떤 특수성이 있는지 살펴봅시다.인증이란 해당 사용자가 실제 사용자인지 인증하는 개념으로써, 사용자의 신원을 검증하는 프로세스다. 우리가 흔히 접하는 ID와 비밀번호로 로그인을 하는 동작들이 인증에 해당된다.인가는 인증 이후에 프로세스로, 인증된 사용자가 어떠한 자원에 접근할 수 있는지 확인하는 절차다. 흔히 웹 어플리케이션에서 관리자에게 부여되는 권라자 권한이 인가에 해당된다. [웹 어플리케이션 인증의 특수성]일반적으로 서버와 클라이언트 구조로 되어있다.HTTP 프로토콜을 이용하여 통신하기 때문에 비연결성과 무상태의 특징을 지닌다..

[깃허브 협업]팀 프로젝트를 진행할 때 다수의 인원이 하나의 깃허브 리포지터리에서 여러개의 브랜치를 사용하여 개발을 하는 경우가 많다.각 브랜치를 사용해서 개발을 했을 때, 결국 main 브랜치의 각자의 작업 분량을 병합(merge 또는 rebase)하는 과정이 필수적으로 포함된다.아래 소개할 깃허브 협업 방법은 글쓴이의 경험을 토대로 작성된 순서일 뿐이지 무조건적인 정답이 아니라는 것은 참고 부탁드립니다. [개발환경(git bash, Intellij 등)에서 작업할 때]git pull origin main (작업 시작할 때 마다 main 브랜치에서 실행)git checkout -b '브랜치 명' (브랜치 생성 후 이동)개인 작업 시작git add .git commit -m "커밋 메시지"git pull..