728x90

전체 글 503

213일차(모험 122일차) - 웹소켓 삽질 중

이 전에 모의면접으로 튜터님과 현재 진행하고 있는 웹소켓에 대해서 얘기가 나왔는데 broadcast 와 handshake에 대해서 얘기가 나왔는데 잘 몰라서 구글링을 해봤는데 명쾌한 글들이 없었다. 내가 이걸 사용을 안했다면 웹 소켓을 사용한게 아닌걸까 라는 생각이 들었었다. 반나절동안 열심히 이것저것 찾아보다가 질문을 드렸다. 처음엔 handshake는 join 메소드를 쓰면서 사용했을 수도 있다고 하셨으나 join이 없었고 http에서는 아래의 이유 때문에 다른 설정을 안해도 실행이 되는게 아닐까 라는 생각이 들었다. 기존의 다른 TCP 기반의 프로토콜과 다르게, WebSocket은 HTTP 요청 기반으로 Handshake 과정을 거쳐 커넥션을 생성한다. 덕분에, 초기 WebSocket Handsha..

TIL 2022.04.15

212일차(모험 121일차)

오늘 면접을 봤었는데 어떻게 본건지 시간이 너무 빨리 지나갔다. 무엇보다 머리가 하얘졌다. 내가 자신있게 대답한 부분도 있었지만 잘 모르는 부분은 대답을 못했었다. 나중에 다시 생각을 해보니 안써본 것이라도 이론을 알면 이론이라도 설명할껄 라는 생각도 들고 회사 관련 질문에서 질문 의도처럼 대답하지 않고 솔직하게 얘기해버렸다. 😓 모의면접에서나 이전에 본 면접에서는 3차 프로젝트에서만 질문이 들어왔었는데 이번 면접에서는 내 개인 프로젝트에 관해 많이 여쭤보셔서 신나게 대답했던 것 같다.😅 (내 새끼 자랑하는 느낌?) 마지막으로 궁금한거 있는지 여쭤보셔서 개발자 관련 질문이랑 회사 관련한 질문을 여쭤봤고 끝이 났다. 오늘은 면접 중간중간에 내가 대답 못한 부분들을 메모해 둬서 그 부분에 대해서 정리하는 시..

TIL 2022.04.14

211일차(모험 120일차) - 코드 살펴보기

어제 test 코드에서 나타난 오류를 아래 코드로 해결했다고 작성했다. 그 코드가 뭔지 찾아봤다. @ExtendWith( SpringExtension. class ) @SpringBootTest ( webEnvironment = SpringBootTest . WebEnvironment . RANDOM_PORT ) @ExtendWith( SpringExtension. class ) @RunWith(SpringRunner.class) // Junit4 사용 시 @ExtendWith(SpringExtension.class) // Junit5 사용 시 test와 관련된 라이브러리가 있다. (test의 핵심은 junit 라이브러리) test할 때 자바 진영에서는 junit이라는 라이브러리를 대부분 사용한다. 그래..

TIL 2022.04.13

210일차(모험 119일차) - 프로젝트 오류 해결하기

프로젝트 게시글 test 이 전에 작성한 test 코드를 다시 실행했더니 오류가 떴다. Error creating bean with name serverEndpointExporter ~ 오류 메세지를 봤더니 MessageContorller 에서 작성한 코드에서 문제가 나서 해당 코드를 주석처리하고 test를 실행해보니 에러가 뜨지 않았다. @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } Bean 은 기본 WebSocket 컨테이너에 @ServerEndpoint 주석이 달린 Bean을 등록한다. 출처 : [ "사용 방법"가이드 ] @ServerEndpoint란 이 어노테이션..

TIL 2022.04.12

209일차(모험 118일차) - 중복 등록과 충돌

- spring 강의 - 이론 정리 복습 [add] 중복 등록과 충돌 [#28] #31 컴포넌트 스캔에서 같은 빈 이름을 등록하면 어떻게 될까? 아래 두가지 상황이 있다. 1. 자동 빈 등록 vs 자동 빈 등록 2. 수동 빈 등록 vs 자동 빈 등록 자동 빈 등록 vs 자동 빈 등록 컴포넌트 스캔에 의해 자동으로 스프링 빈이 등록되는데, 그 이름이 같은 경우 스프링은 오류를 발생시킨다. ConflictingBeanDefinitionException 예외 발생 service라는 이름 추가 service를 붙인 후에 AutoAppConfigTest를 실행시키면 충돌이 난다. 수동 빈 등록 vs 자동 빈 등록 MemoryMemberRepository를 보면 Component가 등록되어있다. 💡Component..

TIL 2022.04.11

30주차 - 필터(includeFilters, excludeFilters)

[add] 필터 [#28] #30 includeFilters : 컴포넌트 스캔 대상을 추가로 지정한다. excludeFilters : 컴포넌트 스캔에서 제외할 대상을 지정한다. Annotation MemberServiceImpl 에 있는 @Component 클릭해서 3개만 복붙한다. ➡️ MyIncludeComponent가 붙은 것은 컴포넌트 스캔에 추가한다는 뜻이다. MyExcludeComponent도 위와 같이 추가했다. 클래스 2개 만들기 BeanA, BeanB MyIncludeComponent는 BeanA MyExcludeComponent는 BeanB Test 생성 (ComponentFilterAppConfigTest) FilterType.ANNOTATION : 어노테이션과 관련된 필터를 만든다...

WIL 2022.04.10

204일차(모험 113일차) - 프로젝트

웹 소켓 관련한 문제를 팀원과 공유하면서 로그인할 때 css가 적용되지 않는 문제 먼저 해결하기로 했다. 새벽에 5시까지 css 적용 문제를 해결하려고 했으나 쉽지 않아 오늘 낮에 이어서 했다. 이왕 하는 김에 무조건 로그인 문제를 해결하자는 의미로 milestone을 작성했다. https://github.com/dal-cho/adme/milestones WebConfig 문제라고 보기엔 이전에는 실행이 잘 되었고 경로 문제라고 보기엔 이전에 실행이 되어서 뭐가 문제인지 아직까지 모르겠다. 😵‍💫 추가로 페이징 관련해서 어떻게 해야할지 팀원과 회의를 했다. 내 생각엔 왼쪽 버튼을 누르면 -5, 오른쪽 버튼을 누르면 +5 로 id 값이 증가하고 기존에 보여지는 페이지 버튼 수는 5개로 지정한 후 각각 id..

TIL 2022.04.06

203일차(모험 112일차)

프로젝트 다른 블로그 글들을 보면서 코드를 작성해봤다. [Java] WebSocket의 Session 사용 방법(Broadcast)과 웹 채팅 소스 예제 onClose에서 해당 아이디를 지우는 것으로 작성해봤다. (remove 추가) test를 해봤을 때 3명 중 한명이 나가면 나머지 2명은 계속 채팅을 할 수 있었고 나머지 한명도 나갔을 때는 아예 채팅이 불가능했다. * 여전히 "__님이 방을 나가셨습니다." 는 나오지 않고 있다. 그래서 onclose에는 메세지를 입력하는 msgArea에 " 님이 방을 나가셨습니다."를 보내는 코드를 작성해봤다. 이번엔 4명으로 test를 해봤다. test를 해보니 한명이 나가도 3명이서 채팅을 할 수는 있으나 짧게 진행되다가 종료되었다. 그리고 "__ 님이 방을 나..

TIL 2022.04.05