본문 바로가기

전체 글151

19일차 오전~오후1: WebSocket + Java Spring 실시간 채팅 구현TIL에 적을 거 생각안하고 구현하다가 뭘 적어야될지 모르겠다package com.example.otl_server.controller.Chat;import org.springframework.context.annotation.Configuration;import org.springframework.messaging.simp.config.MessageBrokerRegistry;import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;import org.springframework.web.socket.config.annotation.Stom.. 2024. 11. 22.
18일차 아침: 와..................내 don't go.................세션도 화장실에서 듣고 cs인강도 화장실에서 들었다. 화장실에서 제자리걸음 하면서 나름 열심히 했다.....내 자신....점심시간에 기진맥진해서 40분동안 푹 자니까 좀 낫다.오늘은 재귀함수에 대해 배웠는데구글이 이런 재밌는걸 해놨다 ㅋㅋㅋㅋㅋrecursion -> recursion ->  recursion ->  recursion -> ...말그대로 재귀다 ㅋㅋㅋㅋㅋㅋㅋ  오후: Spring + Postgresql몽고db, mysql 둘 다 경험이 있으니 사용경험이 없고 전 세계에서 사용자가 제일 많은 db!Postgresql에 도전해보고있다.일단 db만들고~psql -U postgres 비번입력\c otl_db .. 2024. 11. 21.
17일차 오전1: JAVA 개인공부https://roqkfchqh.tistory.com/64 게임에 팩토리 패턴 적용현재 내 게임에 플레이어에게 피해를 주는 객체는 monster과 bomb 두가지이다.둘 다 RandomMovableObject 추상 클래스를 상속받고, 코드가 동일하다.팩토리 패턴을 사용해서 이렇게 비슷하게 생성되는 객roqkfchqh.tistory.com디자인 패턴을 적용해봤다. 디자인 패턴을 의도하고 적용해본 건 처음이라 꽤 재밌었다. 앞으로도 게임을 통해 여러 가지 디자인 패턴들을 의도 하에 써보고싶다. 오전2: cs 강의 수강시간복잡도(Big-O) 표기법의 유래를 알게 되었다. 아직 강의를 다 듣진 않아서 복잡도를 내가 계산해볼 순 없지만, 여태 알고리즘 문제를 풀면서 딱히 시간복잡도를 고려.. 2024. 11. 20.
게임에 팩토리 패턴 적용 현재 내 게임에 플레이어에게 피해를 주는 객체는 monster과 bomb 두가지이다.둘 다 RandomMovableObject 추상 클래스를 상속받고, 코드가 동일하다.팩토리 패턴을 사용해서 이렇게 비슷하게 생성되는 객체들을 통합해서 관리할 수 있다. 팩토리 패턴이란?객체 생성을 캡슐화해서, 객체 생성 로직을 클라이언트 코드와 분리하는 디자인 패턴이다.객체 생성 코드를 중앙 집중화해서 유지보수성을 높이고, 객체 생성을 유연하게 관리 가능하다. 또한 새로운 객체 타입을 추가하려면 팩토리 클래스에 새로운 조건과 생성 코드를 추가하면 되므로 확장성까지 보장된다. 팩토리 패턴의 구조는 Creator, Product, Concrete Product로 이루어져있다.Creator는 Factory 클래스로, 객체 생성.. 2024. 11. 20.
16일차 오전: 계산기에 추상 클래스와 거듭제곱 추가, 주석 추가, 과제 제출 완료https://roqkfchqh.tistory.com/62" data-og-description="예전에, 계산기를 업그레이드 하기 전에 초반에는 구조가 이렇게 되어있었다.주목할 곳은 abstract operation이다. 당시의 나는 "왜 사칙연산밖에 못 하는데 추상 클래스를 4개나 나눠야 하는 거지?" " data-og-host="roqkfchqh.tistory.com" data-og-source-url="https://roqkfchqh.tistory.com/62" data-og-url="https://roqkfchqh.tistory.com/62" data-og-image="https://scrap.kakaocdn.net/dn/.. 2024. 11. 19.
추상 클래스를 도입해보자 <10> 예전에, 계산기를 업그레이드 하기 전에 초반에는 구조가 이렇게 되어있었다.주목할 곳은 abstract operation이다. 당시의 나는 "왜 사칙연산밖에 못 하는데 추상 클래스를 4개나 나눠야 하는 거지?" 라고 생각했었고, 나눠져 있던 5개의 클래스를 하나의 enum으로 통합하고 뿌듯해했다.하지만 내 java에 대한 시야가 확장되면서 이젠 enum과 추상 클래스를 같이 사용하며'두 개의 연산자를 받아서' '다양한 복잡한 연산을 수행하는 기능' 을 '같은 구조로 손쉽게' 추가하는 기능을 도입해보려고 한다. 그럼 코딩을 하기 전, 이들이 얼마나 다른지 짚고 넘어가보자.1. enum만 사용한 operation: 열거형으로 단순하고 직관적이다. 한 파일 안에 모두 담긴다. 하지만, 확장성이 좋지 않다. 지금.. 2024. 11. 19.
15일차 오전~오후2: 계산기 프로젝트에 인터페이스 추가를 통해 검색 기능 확장https://roqkfchqh.tistory.com/59" data-og-description="어제 리팩토링을 하고, 자기 전에 고민을 했다.과연 내 계산기에서 인터페이스나 추상 클래스를 사용할 곳이 한 군데도 없을까? 진짜로?사용할 수 있을 것 같은데? 해서, 인터페이스와 추상 클" data-og-host="roqkfchqh.tistory.com" data-og-source-url="https://roqkfchqh.tistory.com/59" data-og-url="https://roqkfchqh.tistory.com/59" data-og-image="https://scrap.kakaocdn.net/dn/seJ2D/hyXzLYe1.. 2024. 11. 18.
트러블슈팅 : 검색 결과..아아... <9> 검색 결과를 제대로 불러오지 않는 오류가 있다. 하나만 오류가 난다면 쉽게 고칠텐데, 모든 기록에 대해 검색이 안 되어서 원인을 찾아봐야한다. 우선, "조건에 맞는 결과가 없습니다" 는 모든 검색을 다 실행한 후 검색결과가 비어있다면 출력되는 문장이다. result를 반환하는 부분의 콘솔을 찍어봤다. 음.. historyData는 비어있고, condition은 잘 모르겠지만 정상적으로 들어간 것 같다.(제발요)historyData가 빈 것이 문제니 그부분을 더 찾아보자. 클래스의 생성자부터 차근차근 하나씩 로그를 찍다 보면 원인이 나오지 않을까? !!! 생성자에 전달된 list가 컴파일 시점부터 비어있다. 정말 모르겠어서 튜터님께 찾아가니 HistoryDataSearch에서 생성자가 생성되는 시간이랑Hi.. 2024. 11. 18.
인터페이스, 추상클래스.. 사용 가능할 것 같은데? <8> 어제 리팩토링을 하고, 자기 전에 고민을 했다.과연 내 계산기에서 인터페이스나 추상 클래스를 사용할 곳이 한 군데도 없을까? 진짜로?사용할 수 있을 것 같은데? 해서, 인터페이스와 추상 클래스의 개념을 간단하게 다시 잡고, 방향성을 정했다.추상 클래스는 "공통적인 로직" 을 기반으로 하고, 인터페이스는 "확장성" 에 초점을 맞춘다.특징추상 클래스인터페이스목적코드 재사용, 공통 기능 제공설계 강제, 다양한 구현체 허용공통 로직 포함 여부가능 (메서드 구현, 필드 포함)불가능 (Java 8부터 default 메서드 허용)다중 상속불가능가능유연성제한적 (계층 구조를 강제)매우 유연 (다양한 구현 가능) 이보다 더 간단히 비유를 해 보자면,인터페이스는 "레고 블록은 이렇게 생겨야 한다" 라는 규정만 하고, 조립.. 2024. 11. 18.
<finish> 가 아니라 리팩토링.. 작업을 마무리하며,,, 리팩토링을 정말 열심히 했다.  CalculatorApp 클래스에서, 유저의 Input을 받는 요소들을 UserInput 클래스로 따로 분류하였다.History 클래스도 마찬가지로 좀 다듬어줬다.  코드가 엄청 짧아졌다. 뿌듯 ㅎㅎ  그리고 이제 봤는데..  계산기에 이런 조건이 있었다.하핫;;그나마 다행인 건 고유id를 부여해 id조회가 가능하다는 거다.그것도 lambda & stream을 적용해서 만든 거라 얻어걸렸다 핳;; 구조는 똑같으니 괜찮지 않을까?  여기서 마무리 하고 다른 공부 해야겠다~!(근데 github 실수로 main branch에 commits가 26개나 생겼다.........아아......) https://github.com/roqkfchqh/Calculat.. 2024. 11. 17.