Develop/Java 8

[프로젝트] 마피아 게임 프로젝트 후기

- GITHUB 링크 : https://github.com/png401/Mafia_Project_JAVA2_ver2 GitHub - png401/Mafia_Project_JAVA2_ver2Contribute to png401/Mafia_Project_JAVA2_ver2 development by creating an account on GitHub.github.com ㅡ 프로젝트를 마무리하며... 처음 주제를 제안했을 때까지만 해도 이렇게 완성도 높은 프로그램을 만들어낼 수 있을 줄은 몰랐다. 그저 수업 시간에 배웠던 Thread, Socket 통신, GUI, SOLID 규칙 개념을 모두 적용할 수 있어 개념들을 회고하는 시간이 되었으면 했는데 상상 이상이었다. 팀원들이 너무 멋지다... 짱짱맨들. ..

Develop/Java 2025.12.03

[11주차] SpringBoot - 2 (Spring Data JPA로 CRUD 구현)

0. Spring Data JPA - JPA (Java Persistence API): 자바의 표준 인터페이스로, 자바 객체를 DB에 저장할 때 따라야 하는 기본적인 규칙 - Hibernate: JPA를 실제로 구현한 라이브러리로, 실제 DB와 통신하고 SQL을 만드는 '엔진' 역할을 함. - Spring Data JPA: Hibernate를 더 편하게 쓰기 위해 스프링이 한 번 더 감싸놓은 모듈이라고 함. 레포지토리 인터페이스만 만들면 구현체를 자동으로 생성해 준대요. +) HikariCP - Spring Boot가 기본적으로 내장하고 있는 라이브러리로, 얘가 JDBC Connection Pool 역할을 하는데, 미리 DB 연결 객체를 여러 개 만들어두고 빌려주는 방식이라 성능이 매우 빠르고 안정적이라..

Develop/Java 2025.11.30

[10주차] SpringBoot - 1

1. Spring Boot 프로젝트 : 언제, 왜 쓰나?1) Spring - 자바 기반의 웹 애플리케이션 개발을 위한 오픈소스 프레임워크. but 설정 복잡 -> 초보자에게 진입장벽 높음.2) Spring Boot - 복잡한 XML 설정 없이 어노테이션 기반으로 빠르고 직관적인 개발이 가능한 Spring Framework 기반 Sping 프로젝트 템플릿. - Rest API를 구현할 예정3) Rest API (REpresentational State Transfer API) - REST :: 웹에서 데이터를 주고받기 위한 표준화된 아키텍쳐 스타일(HTTP 프로토콜 기반)로, Resource 기반으로 웹 서비스 간에 데이터를 교환함 - REST API :: REST 원칙에 따라 설계된 웹 기반의 ..

Develop/Java 2025.11.23

[9주차] DB & JDBC

[1] DB 개념 정리1. 데이터베이스와 DBMS + 관계형 데이터베이스1) 데이터베이스 : 여러 응용 시스템이 공유할 수 있도록 통합, 저장된 공용 데이터의 집합 : 저장, 검색, 갱신을 효율적으로 수행할 수 있도록 데이터를 고도로 조직화해 저장 2) 관계형 데이터베이스(RDBMS) : 키(key)와 값(value)의 관계를 테이블 형태로 표현하는 모델 - 릴레이션 : 하나의 개체에 관한 데이터를 2차원 표(2차원 테이블 구조) 형태로 저장한 것 - 속성 (Attribute): 릴레이션의 '열', 파일관리시스템의 필드에 해당 - 투플 (Tuple): 릴레이션의 '행', 파일관리시스템의 레코드에 해당 - 도메인 (Domain) : 하나의 속성이 가질 수 있는 모든 값의 범위 또는 데이터타입 (ex. in..

Develop/Java 2025.11.16

[8주차] GUI + Event + Thread를 이용한 망나니 잡기

노션에 나와있는 망나니 잡기 코드를 실행하면 수행되는 동작은 크게 세 가지이다.1. 망나니를 두 번 클릭하면 모든 스레드가 종료된다.2. 병아리, 거북이는 오른쪽으로 이동하고, 토끼는 아래로 결승선에 닿을 때까지 이동한다.3. 병아리, 거북이, 토끼 버튼을 클릭할수록 속도?가 점점 줄어든다. 이를 이용해서 망나니 잡기 실습을 따라하되, 조금 변형을 주었다.기본 규칙은 동일하지만 아래로 가는 토끼를 똑같이 오른쪽으로 이동하도록 수정하고, 결승선 뿐만 아니라 출발선도 만들었다.그리고 속도가 마이너스가 되면 이동 방향의 반대로 이동하면서 출발선에 닿으면 멈추도록 만드는 것이다!너무 식상한가... 그래서 헷갈리는 점을 좀 찾아봤는데... 병아리, 토끼, 거북이를 클릭할 때 나오는 '속도'는 진짜 속도가 아니라 ..

Develop/Java 2025.11.02

[7주차-2] 디자인패턴 추가조사 - 데코레이터 패턴

커피메이커에 추가할만한 디자인 패턴에 대해서 알려달라고 제미나이에게 물어봤더니, '데코레이터 패턴'을 조금 더 조사해보라는 조언을 주었다. 1. 데코레이터 패턴옷을 입는 것은 데코레이터 패턴의 좋은 예다.링크에서 설명하는 바에 따르면, 추울 때 두꺼운 옷을 입거나 비올 때 방수점퍼를 입음으로써 나의 기능?을 쉽게 '확장'할 수 있지만, 옷은 내 일부가 아니기에 더우면 벗어버리기도 쉽다는 장점이 있다. 2. 데코레이터 패턴의 구조 - Component (Interface) : 원본 객체와 장식된 객체 모두를 묶는 역할 - ConcreteComponent : 원본 객체 (데코레이팅 할 객체) - Decorator : 추상화된 장식자 클래스 => 원본 객체를 합성(composition)한 wrappee ..

Develop/Java 2025.10.18

[7주차] 디자인패턴 기초실습

1. 디자인 패턴 기초디자인 패턴 : 가장 효율적이고 검증된 설계 방법으로, SOLID 원칙을 코드에 실제로 녹여내는 가장 실용적인 방법 중 하나.- 대표적인 디자인 패턴 1) 전략 패턴 :: 알고리즘을 쉽게 바꾸는 것이 목표인 패턴. OCP의 정석! - 알고리즘(전략)을 통째로 갈아 끼울 수 있게 만드는 패턴. - 이전 실습인 커피메이커에서 if/else문으로 조건문을 만들어 결제수단을 만들면, 결제수단이 새로 추가된다면 if문이 늘어나고 수정도 불편해진다! 즉 OCP 원칙을 적용해 코드를 수정하기 위해 전략 패턴을 사용할 수 있음. (결제수단의 전략을 클래스로 구현하기) 2) 팩토리 메소드 패턴 :: 직접 'new'하지 않고 객체 생성 방법을 공장에 대신 깔끔히 맡기는(위임하는) 패턴 ..

Develop/Java 2025.10.15

[6주차] 커피메이커 v2 리팩토링

1. S : 단일 책임 원칙 (SRP) 적용 - 문제점 : SRP 원칙은 단일 책임 원칙으로써, 한 클래스는 한 가지 책임에만 집중해야 한다! 그러나 현재 Manager 클래스의 상태를 보면,public class Manager { private final Menu menu; private final CoffeeFactory factory; private final CoffeeMaker maker; public Manager(Menu menu, CoffeeFactory factory, CoffeeMaker maker) { this.menu = menu; this.factory = factory; this.maker = maker; } public void takeOrder(String name,..

Develop/Java 2025.10.11