전체 글 55

자바 프로젝트-4 클라이언트 시작! stomp서버 연결하기

우리는 mvc를 적용하기로 햇고, network서비스로 서버와 클라이언트를 연결한다.View (ChatFrame): 사용자가 글자를 입력하고 버튼을 클릭함 (이벤트 발생).Controller (ChatClientApp): 이벤트를 감지하고, View에서 글자를 가져옴.Service (NetworkService): Controller가 넘겨준 데이터를 JSON으로 포장해서 서버로 던짐.Network (STOMP): /app/chat.send 주소로 배달.스프링 기초 내용 학습"스프링부터에서 STOMP 기반 웹소켓으로 서버 클라이언트 연결하기 - 기초개념과 대표 사용법을 알려줘" 사용한 프롬프트 1. 클라이언트랑 서버 연결하기서버 설정WebSocketConfig 사용@EnableWebSocketMessag..

프로젝트 2025.12.05

week14: CRUD

전환: JDBC vs Spring Boot (JPA) 자바에는 JDBC를 직접 이용하며 SQL문을 작성하지 않아도, Spring boot와 Spring data JPA로 다룰 수 있다. JPA란? (Java Persistence API)역할: 자바 객체(Object)를 DB에 저장할 때 사용하는 새로운 표준 기술이자 자동화 도구 비교 항목🐢 JDBC (Legacy)🚀 Spring Data JPA (Modern)SQL 작성개발자가 직접 작성 (String 형태)자동 생성 (메서드 호출 시 알아서 나감)코드 양길고 반복적임 (Connection 열고 닫기 등)매우 간결함 (비즈니스 로직에 집중)유지 보수DB 컬럼 변경 시 쿼리 수정 지옥... 😱객체 필드만 수정하면 끝! 😎패러다임데이터 중심 (SQ..

자바 2025.11.29

자프실 프로젝트-3

채팅히스토리를 불러오는 코드가 구현유저가 입장했을 때 그 전 메시지들을 로딩해서 불러오기. (msgDB사용) 구현 방식내 ID를 보고 권한 확인, ID 수집 후 이름 매핑, DB 엔티티를 DTO로 변환 // 1. 요청한 유저(나)의 ID를 찾음ChatUserEntity me = userRepository.findByUserName(username)...// 2. DB에서 내가 볼 권한이 있는 메시지만 싹 긁어옴List historyEntities = messageRepository.findHistoryByUserId(me.getId());=> 전체채팅+내가 보낸 귓속말+ 내가 받은 귓속말만 필터링에해서 긁어옴 ID를 String으로 쉽게 쓰자.Set userIds = new HashSet();for ..

프로젝트 2025.11.29

자프실 프로젝트-1

패키지 이름은 어떻게 써야하는 거지? 스프링 부트의 폴더 구조와 패키지 이름은 왜 길게 쓸까?패키지: com.example.chatapp.service 파일의 정리정돈 위치(폴더 경로)이렇게 긴 이름을 사용하면→ 전 세계에서 유일한 이름을 쓸 수 있다.컴퓨터가 헷갈리지 않도록회사의 도메인 주소(인터넷 주소)를 거꾸로 씁니다.com.naver.search (네이버 검색팀)com.kakao.talk (카카오톡팀)com.example.chatapp (우리의 채팅앱)우리의 채팅 앱은 com.example 말고 unique한 도메인을 써야한다. WebSocketSession스프링에서 제공하는 객체 (서버와 클라이언트를 이어주는 파이프)스프링 부트로 서버를 열고, WebSocketSession을 사용해서 서버와 클..

프로젝트 2025.11.29

자프실 프로젝트-2

stomp+websocket 방식 우리 프로젝트에서는 웹 소켓 위에 STOMP프로토콜을 사용하기로 했다. 역할웹 소켓: 서버와 클라이언트 사이를 연결해준다 STOMP: 규칙을 제시한다. 데이터에 딱지를 붙여 준다. 예: SEND-채팅방으로 갈거야. SUBSCRIBE- 나 이제부터 귓속말 들을거야(구독하기). api명세서로 따라가보는 흐름 [1단계] 입장 수속 (REST API)경로: POST /api/users/join (일반 HTTP) 카운터 접수 [2단계] 도로 개통 (웹소켓 연결)경로: ws://localhost:8080/ws 서버와 실시간으로 대화할 전용 터널 생성. -> 브라우저를 끄기 전까지 연결 유지 [3단계] 주파수 맞추기 (STOMP - SUBSCRIBE)클라이언트가 STOMP규칙에 ..

프로젝트 2025.11.29

week13: Srping boot 시작

Java가 실무에서 가장 많이 사용되는 영역은 백엔드이고, 특히 Spring Boot는 표준처럼 사용되는 프레임 워크이다. 지금까지 배운 내용들을 적용해볼 수 있는 개념이다! 기본 용어 정리 Spring:자바 기반의 강력한 웹 애플리케이션 개발을 위한 오픈소스 프레임워크 Spring boot:번거로운 설정 없이 간편하게 시작할 수 있는, Spring 프로젝트 템플릿 (-> 개발자가 비지니스 로직에 집중할 수 있게 해준다.) REST API:REST: 웹에서 데이터를 주고 받기 위한 아키텍쳐 스타일, HTTP 프로토콜을 기반, resource를 기반으로 하여 웹 서비스 간 데이터를 교한한다. REST API: REST 원칙에 따라 설계된 웹 기반의 API (REST원칙을 잘 지킨 서비스 일 수록 유지보수와..

카테고리 없음 2025.11.23

week 12: DB & JDBC

모든 프로그램은 데이터로 실행된다. 오늘은 이 데이터와 데이터를 다루는 개념을 알아보겠다. 이 그림에서 사용자는 데이터를 조회, 수정, 추가, 삭제하는 주체이다. 사용자는 DBMS에게 데이터 언어(SQL)를 사용하여 데이터를 처리하도록 명령을 내린다. 데이터베이스 관리 시스템(DBMS)는 사용자의 요청을 받아 데이터베이스를 실제로 관리하고, 요청된 작업을 수행한다. 1. DB&DBMS 데이터베이스와 DBMS데이터베이스: 거대한 엑셀 파일- 여러 응용 시스템의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 집합- 데이터의 저장, 검색, 갱신을 효율적으로 수행할 수 있도록 고도로 조직화하여 저장 DBMS: 이 파일을 관리하고 보관하는 시스템 (MySQL, Oracle 등)- 데이터베이스를..

자바 2025.11.16

week10: 자바 네트워크

네트워크 기초 개념: IP주소 : 장치를 식별하는 고유한 숫자 주소포트: 하나의 IP주소 내에서 여러 프로그램을 구분하는 번호. => 네트워크 통신은 IP주소 + 포트 번호를 조합하여 어떤 컴퓨터의 어떤 프로그램으로 정보를 보낼지 지정한다.예: 127.0.0.1:8080 URL클래스:프로토콜: 통신 규칙과 데이터 전송 방식 (TCP, UDP, HTTP 등), 통신언어 TCP/UDP:연결방식연결 지향 (1:1 연결 필수)비연결 지향(그냥 데이터 보내)신뢰성높음 (순서 보장, 누락 없음)낮음 (순서/누락 가능)속도상대적으로 느림빠름오류처리수신 확인, 재전송 있음수신 확인 없음사용 예채팅, 파일 전송, 웹온라인 게임, 스트리밍Java 클래스Socket, ServerSocketDatagramSocket 소켓..

자바 2025.11.09

week9.java GUI_Swing, Event 실습

1. 자바 GUI와 Swing 개요 자바의 GUI (Graphical User Interface)는 그래픽 요소를 활용하여 사용자에게 정보를 시각적으로 제공하고, 사용자의 입력(마우스 클릭, 키 입력 등)을 시스템에 전달하는 매개체입니다. 이는 소프트웨어 아키텍처에서 MVC (Model-View-Controller) 패턴 중 View 역할을 담당합니다. Swing의 특징: 경량(Lightweight) 컴포넌트: 기존의 AWT(Abstract Window Toolkit)의 한계를 극복하기 위해 등장했습니다. OS의 네이티브(Native) 코드 대신 순수 자바 코드로 그려지기 때문에, 모든 운영체제에서 동일한 모양과 동작을 보장합니다.컴포넌트 명칭: 모든 Swing 컴포넌트에는 접두사 'J'가 붙습니다..

자바 2025.11.02

week7: 디자인 패턴

과제3: 디자인 패턴 중 하나 골라 내 코드에 적용하기커피메이커에 적용. 데코레이터 패턴 적용 커피 만들기 샷 넣기 (base)에스프레소 샷 넣기 콜드브루 샷 넣기 베이스 (baseadd)따듯한 물 넣기 차가운 물 넣기 차가운 우유 넣기 뜨거운 우유 넣기 (스팀 치기) 얼음 넣기(ice)얼음 넣기 시럽 넣기바닐라 시럽 넣기초콜렛 시럽 넣기데코레이터 패턴 데코레이터 패턴의 핵심은 장식을 하는 객체와 장식되는 기본 객체를 같은 타입으로 취급하는 것이다. => 클라이언트가 기본 객체를 사용하든, 장식된 객체를 사용하든 동일한 방식으로 다룰 수 있다. 커피 정보를 이용한 프로그램이다. 베이스만 만들고 그 위에 추가적인 정보를 쌓는 형식으로 작동한다. 베이스는 콜드브루 베이스와 에스프레소 베이스 두가지이다...

카테고리 없음 2025.10.17