728x90

전체 글 503

프로젝트 관련 정리글 링크 첨부

TIL 중에서 프로젝트 관련 링크를 따로 첨부해봤다. 이 전에는 94일차_튜터님 피드백(모험 3일차) 처럼 빽빽하게 적었던 것 같은데 요즘은 간결하게 적는 느낌이 나는 것 같다. 😁 링크를 첨부하기 위해 게시글을 한번 씩 훑어보면서 ~ 해야겠다 라고 짧게 끝나는 글부터 내가 어떤 오류가 발생했고 어떻게 해결했는지까지 다양하게 적혀있다. 카테고리가 TIL인 프로젝트 관련 글을 계속 적으면 여기에다가 첨부해야겠다. 92일차(모험 1일차) 96일차(모험 5일차) - 프로젝트 틀 작성 14주차 99일차(모험 8일차_프로젝트 계획 짜기) 101일차(모험 10일차) - 프로젝트 ERD, API 작성 106일차(모험 15일차) - 테스트 코드 115일차(모험 24일차) - 모의 면접, 백엔드 프론트 연결 120일차(..

Project 2022.03.27

28주차

이번주는 spring 공부와 프로젝트 기능 구현(웹소켓) 을 진행했다. 프로젝트를 중점적으로 얘기 하자면 현재 여러명이서 같은 링크에서 채팅기능을 구현했다. 기능 하나만을 구현했는데 앞으로 진행해야할 게 점점 늘어나고 있다... 1. 관리자와 사용자 구분하기 마구잡이로 채팅을 하기위해서 구현한게 아니라 주 목적이 관리자와 유저간의 대화를 채팅으로 구현하기 위해서 만든 기능이므로 관리자 와 일반 유저 분리해서 유저는 1대1 관리자는 1대 n 채팅을 해야한다. 이 부분은 참고할 만한 블로그가 있어서 활용중이다. [ [Java] Websocket을 이용해서 유저(사이트 운영자)가 다른 유저와 채팅하는 방법 ] 2. 한명이 나가면 웹소켓 종료되는 문제 해결해야함 이게 가장 큰 문제인 것 같다. 😩 점차 사용자가..

WIL 2022.03.27

192일차(모험 101일차) - 프로젝트

프로젝트 [ WebSocket을 사용한 채팅프로그램(1) ] 위 글을 살펴보니 html에서 수정만 하면 닉네임 값으로 띄울 수 있을 것 같았다. 닉네임을 가져오기 위해서 로그인을 하면 index.html이 기본 페이지로 띄워지는데 그 페이지 내에서 닉네임을 띄워주기 때문에 그 값을 Session Storage에 저장을 해서 갖고오면 될 것 같았다. 12주차(S3 업로드 완료, Sesstion Storage에 저장하기) 처음에 시도했을 때는 닉네임 값을 가져오진 못했지만 내가 원하는 형태로 띄워졌다. 나 : 메세지 위 형태로 띄워지던 것이 html을 수정했던 형태로 나온 것이다. 나 : null : 메세지 그래서 console로 아이디 값을 받아오는 것을 확인한 후 재 시도 했다. span 태그 안에 있는..

TIL 2022.03.25

191일차(모험 100일차) - @Configuration과 싱글톤

[add] @Configuration과 싱글톤[#21] #26 AppConfig 코드를 본다. memberService 빈을 만드는 코드를 보면 memberRepository() 를 호출한다. 이 메서드를 호출하면 new MemoryMemberRepository() 를 호출한다. orderService 빈을 만드는 코드도 동일하게 memberRepository() 를 호출한다. 이 메서드를 호출하면 new MemoryMemberRepository() 를 호출한다. 객체가 2개 생성된다. @Bean memberService ➡️ new MemoryMemberRepository() @Bean orderService ➡️ new MemoryMemberRepository() 결과적으로 각각 다른 2개의 Memo..

TIL 2022.03.24

단축키(계속 추가 중)

ctrl + alt + v 변수 추출하기 참고 : https://lu-delight.tistory.com/466 iter + tab for문 자동 완성 참고 : https://lu-delight.tistory.com/470 sout - 기본 참고 : https://youn12.tistory.com/45 soutp 파라미터 명 print soutm 메서드 명 print 참고 : https://lu-delight.tistory.com/484 soutv 변수 명 print (값) 참고 : https://lu-delight.tistory.com/470 ctrl + e 이 전 코드로 돌아감 (MemberRepository에서 Member로 넘겼는데 ctrl + e를 누르면 MemberRepository로 돌아감)..

요약 정리 2022.03.24

웹 소켓 구현 과정

참고한 블로그 >> [ WebSocket으로 실시간 채팅 구현하기.(springboot) ] Handshake failed due to invalid Upgrade header: null 알고보니 /websocket으로 입력하는게 아니라 /chat으로 입력하는 것이었다.ㅎ 위와 같이 test 해보다가 새로고침을 했더니 아래와 같은 에러가 발생했다. The WebSocket session [0] has been closed and no method (apart from close()) may be called on a closed session 구글링 해보니 아래와 같은 코드가 적혀있길래 가져와서 OnClose 부분을 사용했다. ( 연결이 끊어졌을 때 ) @OnMessage public String onM..

Project 2022.03.24

190일차(모험 99일차) - 싱글톤 방식의 주의점⭐

[add] 싱글톤 방식의 주의점 [#21] #25 - 싱글톤 패턴이든, 스프링 같은 싱글톤 컨테이너를 사용하든, 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지(stateful)하게 설계하면 안된다. - 무상태(stateless)로 설계해야 한다! • 특정 클라이언트에 의존적인 필드가 있으면 안된다. • 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다! • 가급적 읽기만 가능해야 한다. (가급적 값을 수정하면 안된다.) • 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal 등을 사용해야 한다. - 스프링 빈의 필드에 공유 값을 설정하면 정말 큰 장애가 발생할 수 있다..

TIL 2022.03.23

189일차(모험 98일차) - 싱글톤 컨테이너

[add] 싱글톤 컨테이너 [#21] #24 스프링 컨테이너는 싱글톤 패턴의 문제점을 해결하면서, 객체 인스턴스를 싱글톤(1개만 생성)으로 관리한다. 지금까지 우리가 학습한 스프링 빈이 바로 싱글톤으로 관리되는 빈이다. 싱글톤 컨테이너 스프링 컨테이너는 싱글턴 패턴을 적용하지 않아도, 객체 인스턴스를 싱글톤으로 관리한다. 이전에 설명한 컨테이너 생성 과정을 살펴본다. 컨테이너는 객체를 하나만 생성해서 관리한다. 스프링 컨테이너는 싱글톤 컨테이너 역할을 한다. 이렇게 싱글톤 객체를 생성하고 관리하는 기능을 싱글톤 레지스트리라 한다. 스프링 컨테이너의 이런 기능 덕분에 싱글턴 패턴의 모든 단점을 해결하면서 객체를 싱글톤으로 유지할 수 있다. 싱글톤 패턴을 위한 지저분한 코드가 들어가지 않아도 된다. DIP,..

TIL 2022.03.22