개요
1. Spring Boot + WebSocket, STOMP를 활용하여 채팅창 만들기
HTTP 방식이 아닌 WebSocket 방식이 필요한 이유를 이해하고, 해당 방식을 구현하여 실시간 채팅창 만들기
2. 하나의 서버에서 모든 서비스가 제공 되는 것이 아닌 분할하여 서비스를 제공하는 것을 목표로 함
하나의 Spring 서버에서 모든 서비스를 제공하는 것이 아니라, 각각의 서버를 따로 두어 필요하면 합치는 식으로 모듈 형태로 개발해보려 합니다.
예를 들어, 다른 서비스에 채팅창이 필요하다면, 이 채팅창 서비스를 결합한다든지 하는 과정
3. 이번 주 내로 채팅창 구현은 완료하고, 서비스 로직에 대하여 고민해 보거나, 고려할 만한 사항들에 대하여 체크하기
도메인을 작게하여 서비스를 완성시키는 것에 대해 의의를 두고, 성능의 테스트라든지, 채팅창에서 구현할만한 서비스 로직들에 대하여 고민하여 추가로 리팩토링 하는 과정을 거치기
:개발 시작하면서 본문 수정 필요 조금 더 다듬고 자세하게 작성하기
개발 목적
1. 채팅창을 구현하려는 목적
많은 웹 서비스 중에 채팅창을 구현하려는 목적은 첫 번째로 기존의 HTTP 통신이 아닌 다른 방식의 통신을 공부할 수 있다는 점.
두 번째로 여러 서비스를 접하며 채팅창에 있어 불편함을 겪는 서비스들이 있었는데, 해당 부분의 채팅창을 개선하고자 한다면 어떻게 해야 할지 내가 고민하던 것들 그리고 필요로 하는 점을 구현할 수 있는 능력을 기르기 위함이다.
2. 구현 방식
기술적인 구현 방식이 아닌, 기능적인 구현에 대해 고민한 부분 그리고 개발 방향성
보통 채팅창하면, 로비에서 접속을 하여 각각의 채팅방으로 나뉘어지는 채팅을 구현하는데 내가 생각하는 방법은
로비에서의 채팅창 구현이다.
마치 게임 혹은 ZOOM에서의 메인 채팅창 처럼 말이다.
어떻게 보면 로비를 하나의 큰 채팅창이라고 생각하고 구현을 해보려 한다.
3. HTML+CSS , JS 등 FE의 지식도 함양
백엔드가 토이 혹은 사이드 프로젝트 할 때 느끼는 고충 중 하나이지 않을까 싶다. 적어도 나는 그렇다.
무언가 만들어보고 싶은게 있어도 클라이언트를 만들어줄 사람이 없으면 내가 원하는 화면을 구현하는 데에 애로사항이 발생한다.
앞으로의 웹개발 분위기나 향후 발전 가능성을 봤을 때 온전히 백엔드 개발자로의 스탠스를 고집하기 보다는 유연하게 대처할 줄 알아야겠다는 생각이 들어 높은 수준의 FE 구현력은 아니지만 SSR 방식이나 필요에 의하다면 React를 활용하여 간단한 화면 정도는 개발해보려 한다.
타임리프나 JSP 를 활용하여 구현하면 좋겠지만 내가 추구하는 프로젝트 완성본이 다양한 컴포넌트의 집합체이기 때문에 SSR 방식만으로는 한계가 있지 않을까 싶다.
-> 밑에는 채팅창 위에는 로비(특정 방) 좌 우측에는 접속자 표시 등 만들어둔 특정 서비스를 모듈처럼 원하는 대로 조립하여
조금 더 객체지향적으로 개발을 하려고 하기 때문이다.
4. 충분히 기록하기
요즘 더욱 느끼는 거지만 개발 소요시간은 개발+ a이다.
단순히 그 시간에 온전히 몰입하여 개발을 하면 좋겠지만, 기록하고 다듬는 시간도 포함이 된다.
하나의 프로젝트를 진행하고 스스로 느낀 결과 프로젝트가 마무리되고 회고하는 것보다 모르는 부분 혹은 공부하는 기술 분야가 있다면 일 단위로 기록하는 것이 더욱 효과적이라고 판단했다.
프로젝트를 완료하고 회고하려니 안다고 생각하고 넘어가는 부분이 너무 많았다.. :(
따라서 누군가 보기에는 단순한 코드의 나열 혹은 불필요한 기록이라고 생각될지라도
나의 지식 DB라고 생각하고 충분히 기록하려 한다.
🌟REFERENCE
참고 블로그:
개요
1. Spring Boot + WebSocket, STOMP를 활용하여 채팅창 만들기
HTTP 방식이 아닌 WebSocket 방식이 필요한 이유를 이해하고, 해당 방식을 구현하여 실시간 채팅창 만들기
2. 하나의 서버에서 모든 서비스가 제공 되는 것이 아닌 분할하여 서비스를 제공하는 것을 목표로 함
하나의 Spring 서버에서 모든 서비스를 제공하는 것이 아니라, 각각의 서버를 따로 두어 필요하면 합치는 식으로 모듈 형태로 개발해보려 합니다.
예를 들어, 다른 서비스에 채팅창이 필요하다면, 이 채팅창 서비스를 결합한다든지 하는 과정
3. 이번 주 내로 채팅창 구현은 완료하고, 서비스 로직에 대하여 고민해 보거나, 고려할 만한 사항들에 대하여 체크하기
도메인을 작게하여 서비스를 완성시키는 것에 대해 의의를 두고, 성능의 테스트라든지, 채팅창에서 구현할만한 서비스 로직들에 대하여 고민하여 추가로 리팩토링 하는 과정을 거치기
:개발 시작하면서 본문 수정 필요 조금 더 다듬고 자세하게 작성하기
개발 목적
1. 채팅창을 구현하려는 목적
많은 웹 서비스 중에 채팅창을 구현하려는 목적은 첫 번째로 기존의 HTTP 통신이 아닌 다른 방식의 통신을 공부할 수 있다는 점.
두 번째로 여러 서비스를 접하며 채팅창에 있어 불편함을 겪는 서비스들이 있었는데, 해당 부분의 채팅창을 개선하고자 한다면 어떻게 해야 할지 내가 고민하던 것들 그리고 필요로 하는 점을 구현할 수 있는 능력을 기르기 위함이다.
2. 구현 방식
기술적인 구현 방식이 아닌, 기능적인 구현에 대해 고민한 부분 그리고 개발 방향성
보통 채팅창하면, 로비에서 접속을 하여 각각의 채팅방으로 나뉘어지는 채팅을 구현하는데 내가 생각하는 방법은
로비에서의 채팅창 구현이다.
마치 게임 혹은 ZOOM에서의 메인 채팅창 처럼 말이다.
어떻게 보면 로비를 하나의 큰 채팅창이라고 생각하고 구현을 해보려 한다.
3. HTML+CSS , JS 등 FE의 지식도 함양
백엔드가 토이 혹은 사이드 프로젝트 할 때 느끼는 고충 중 하나이지 않을까 싶다. 적어도 나는 그렇다.
무언가 만들어보고 싶은게 있어도 클라이언트를 만들어줄 사람이 없으면 내가 원하는 화면을 구현하는 데에 애로사항이 발생한다.
앞으로의 웹개발 분위기나 향후 발전 가능성을 봤을 때 온전히 백엔드 개발자로의 스탠스를 고집하기 보다는 유연하게 대처할 줄 알아야겠다는 생각이 들어 높은 수준의 FE 구현력은 아니지만 SSR 방식이나 필요에 의하다면 React를 활용하여 간단한 화면 정도는 개발해보려 한다.
타임리프나 JSP 를 활용하여 구현하면 좋겠지만 내가 추구하는 프로젝트 완성본이 다양한 컴포넌트의 집합체이기 때문에 SSR 방식만으로는 한계가 있지 않을까 싶다.
-> 밑에는 채팅창 위에는 로비(특정 방) 좌 우측에는 접속자 표시 등 만들어둔 특정 서비스를 모듈처럼 원하는 대로 조립하여
조금 더 객체지향적으로 개발을 하려고 하기 때문이다.
4. 충분히 기록하기
요즘 더욱 느끼는 거지만 개발 소요시간은 개발+ a이다.
단순히 그 시간에 온전히 몰입하여 개발을 하면 좋겠지만, 기록하고 다듬는 시간도 포함이 된다.
하나의 프로젝트를 진행하고 스스로 느낀 결과 프로젝트가 마무리되고 회고하는 것보다 모르는 부분 혹은 공부하는 기술 분야가 있다면 일 단위로 기록하는 것이 더욱 효과적이라고 판단했다.
프로젝트를 완료하고 회고하려니 안다고 생각하고 넘어가는 부분이 너무 많았다.. :(
따라서 누군가 보기에는 단순한 코드의 나열 혹은 불필요한 기록이라고 생각될지라도
나의 지식 DB라고 생각하고 충분히 기록하려 한다.
🌟REFERENCE
참고 블로그: