본문 바로가기

전체 글

(188)
Override, Overload / JPA 더티체킹 / JVM Overloading(오버로딩) 같은 이름의 메서드를 여러 개 가지며 매개변수의 유형과 개수가 달라도 되는 기술 두 메서드가 같은 이름을 가지고 있으나 인자의 수나 자료 타입이 다른 경우를 뜻함(리턴 값만 다르게 갖는 오버로드는 작성할 수 없음) 오버로딩 예시 public double computeArea(Circle c) { ... } public double computeArea(Circle c1, Circle c2) { ... } public double computeArea(Square c) { ... } Overriding(오버라이딩) 상위 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용 상위 클래스의 메서드와 이름, signature가 같은 함수를 하위 클래스에 재정의하는 것(상속..
Call by Reference 자바의 Call by Value / Call by Reference 함수의 매개변수에서 값을 복사하느냐 주소값을 참조하느냐에 따라 반환 결과가 달라지기 때문에 대부분의 프로그래밍 교육 과정에서는 중요시 하게 여김 자바의 데이터 타입은 크게 두 가지로 나뉨 기본형(primitive type) : Boolean Type(boolean), Numerice Type(short, int, long, float, double, char) 참조형 (reference type) : Class Type, Interface Type, Array Type, Enum Type, 기본형을 제외한 모든 타입 메서드에 입력값(파라미터)에 원시값(primitive type)을 전달하는 것과 객체(reference type)를 전달하..
WebSocket 활용 웹 게임 구현 요구 조건 WebSocket 통신을 이용한 유저간 1:1 인디언 포커 게임을 실행할 수 있어야 한다 게임은 1판에 총 3개의 라운드가 진행되야 한다 각 라운드는 규칙에 맞게 동작할 수 있어야 한다 게임 종료 후 유저의 선택에 따라 게임을 다시 시작하거나 게임방 또는 로비로 나가도록 구현되야 한다 게임 규칙 숫자 1~10까지의 숫자 카드 덱 2개를 사용한다 라운드 종료 시 더 높은 숫자 카드를 가진 유저가 라운드에서 승리하고 베팅된 포인트를 모두 가져간다 라운드 시작 시 플레이어는 각각 카드를 1장 받는다(자신의 카드는 라운드 종료 시까지 확인할 수 없음) 베팅은 다음 3가지 중 하나를 선택할 수 있음 CHECK 선턴인 유저 : 게임에 참가한 유저 중 포인트가 더 적은 유저의 10% 값 만큼 베팅한다 후턴..
WebSocket - 실제 코드 분석 웹 게임 프로젝트 관련 코드 분석 - with GPT4 분석 프로젝트 : https://github.com/namoldak/Backend/tree/dev/src/main/java/com/example/namoldak Config WebSocketConfig package com.example.namoldak.config; import com.example.namoldak.util.webSocket.SignalHandler; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context..
Git Project 관리 Git Project 생성 1. GitHub 대시보드에서 Project → New project 클릭 2. Project Template 선택 후 프로젝트 생성 3. +버튼(Add a new column to the board)으로 보드 추가, ... 버튼(Action for column)으로 보드 관리 4. + Add item 버튼으로 이슈 추가 이슈 페이지에서 생성 후 프로젝트 연결도 가능 Git Issue 관리 이슈 생성 - 공식문서 Issue Template 1. 세팅 repository → settings 2. General 탭의 스크롤을 내려 Features → Issues → Set up Templates 3. Add Template : select 후 원하는 템플릿 선택(Custom tem..
WIL-8 Fact : 이번주 있었던 일, 내가 한 일 월 : 클론 코딩 프로젝트 발표 및 회고 화 : 최종 프로젝트 발제, 팀 SA 작성, 프로젝트 주제 선정 수 : 웹 게임 프로젝트 기획 목 : WebSocket 학습, ERD, API 설계 금 : WebSocket 학습, 백엔드 깃 컨벤션, 코드 컨벤션 확립 토 : WebSocket 학습, 1주차 멘토링 Feeling : 나의 감정적인 반응, 느낌 최종 프로젝트라 잘 해낼 수 있을지 불안하고 긴장됨 내가 만든 프로그램을 유저에게 직접 테스트 받을 수 있어서 기대 됨 Finding : 그 상황으로부터 내가 배운 것, 얻은 것 하나의 기술을 구현하기 위한 기술 스택의 종류와 기술 스택을 정하기 위한 의사결정에 대해 배웠음 WebSocket에 대해 배움 Future..
WebSocket - STOMP 2 Annotated Controllers 애플리케이션은 클라이언트로부터 받은 메시지를 처리하기 위해 @Controller 클래스를 사용할 수 있음 이러한 컨트롤러는 @MessageMapping, @SubscirbeMapping, @ExceptionHandler 메서드를 선언할 수 있음 @MessageMapping @MessageMapping 메서드는 지정한 경로를 기반으로 메시지를 라우팅할 수 있음, 메서드뿐만 아니라 타입 레벨, 클래스에도 설정할 수 있는데, 이는 컨트롤러 안에서 공통된 경로를 제공하기 위해서 사용된다 기본적으로 매핑은 Any-Style Path 패턴으로 구성하고, Template 변수도 지원한다(ex, /something*, /somethig/{id}) Template 변수는 @Dest..
WebSocket - STOMP 1 STOMP ? STOMP는 Simple Text Oriented Messaging Protocol의 약자로 TCP 또는 WebSocket 같은 양방향 네트워크 프로토콜 기반으로 동작한다 STOMP는 텍스트 지향 프로토콜이지만 Message Payload에는 Text 또는 Binary 데이터를 포함할 수 있음 COMMAND header1:value1 header2:value2 Body^@ STOMP Protocol Specification, Version 1.2 클라이언트는 Message 전송을 위해 SEND, SUBSCRIBE, COMMAND를 사용할 수 있음 또, SEND, SUBSCRIBE, COMMAND 요청 Frame에는 메시지가 무엇기고 누가 받아서 처리할지에 대한 Header 정보를 함께 포함..