Search

AI3 - 17일차 μ˜€ν›„

AI Companion을 μ‚¬μš©ν•œ 회의 μš”μ•½ λ§Œλ“€μ–΄μ§
AI Companion을 μ‚¬μš©ν•œ 회의 μš”μ•½ AI FULL 3 λΉ λ₯Έ μš”μ•½ 이 νšŒμ˜λŠ” 주둜 3 계측 μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ—¬ κ²Œμ‹œνŒ ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν•˜κ³  JavaFXλ₯Ό μ‚¬μš©ν•˜μ—¬ Java 개발 ν™˜κ²½μ„ μ„€μ •ν•˜λŠ” 데 쀑점을 λ‘μ—ˆμŠ΅λ‹ˆλ‹€. μ°Έκ°€μžλ“€μ€ ν”„λ ˆμ  ν…Œμ΄μ…˜, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 데이터 μ•‘μ„ΈμŠ€ λ ˆμ΄μ–΄λ₯Ό ν¬ν•¨ν•œ ν”„λ‘œκ·Έλž¨ ꡬ쑰와 JDK, Eclipse 및 JavaFX SDK와 같은 ν•„μš”ν•œ ꡬ성 μš”μ†Œμ˜ μ„€μΉ˜μ— λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. μ„Έμ…˜μ€ Scene Builderλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°„λ‹¨ν•œ JavaFX μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” 데λͺ¨λ‘œ λλ‚¬μœΌλ©°, 이벀트 μ²˜λ¦¬μ™€ JavaFX μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ—¬λŸ¬ μ°½ 생성에 λŒ€ν•΄ κ°„λž΅ν•˜κ²Œ μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ 단계 β€’ ALOHA: μ μ ˆν•œ λͺ¨λ“ˆ κ΅¬μ„±μœΌλ‘œ κΈ°λ³Έ Java FX ν”„λ‘œμ νŠΈ ꡬ쑰λ₯Ό λ§Œλ“­λ‹ˆλ‹€. β€’ ALOHA: 개발 ν™˜κ²½μ— JDK 23을 μ‚¬μš©ν•˜μ—¬ Java FX SDK 버전 24λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. β€’ ALOHA: Java FX κ°œλ°œμ„ μœ„ν•œ Eclipse Marketplace ν”ŒλŸ¬κ·ΈμΈ μ„€μΉ˜ β€’ ALOHA: UI κ°œλ°œμ„ μœ„ν•œ Scene Builderλ₯Ό κ΅¬μ„±ν•˜κ³  Eclipse와 μ—°κ²°ν•©λ‹ˆλ‹€. β€’ ALOHA: Java FX GUI μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ κ²Œμ‹œνŒ ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. β€’ ALOHA: Scene Builderλ₯Ό μ‚¬μš©ν•˜μ—¬ 메인 화면에 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ ꡬ성 μš”μ†Œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. β€’ ALOHA: λ°μ΄ν„°λ² μ΄μŠ€ κΈ°λŠ₯을 μƒˆλ‘œμš΄ GUI μΈν„°νŽ˜μ΄μŠ€μ™€ ν†΅ν•©ν•©λ‹ˆλ‹€. β€’ ALOHA: ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œ ꡬ성 μš”μ†Œλ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜μ—¬ 전체 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€. μš”μ•½ κ²Œμ‹œνŒ ν”„λ‘œκ·Έλž¨μ˜ 3단계 μ•„ν‚€ν…μ²˜ 이 νšŒμ˜μ—μ„œλŠ” κ²Œμ‹œνŒ ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ 3단계 μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ˜ κ΅¬ν˜„μ„ λ…Όμ˜ν•©λ‹ˆλ‹€. κ΅¬μ‘°λŠ” ν”„λ ˆμ  ν…Œμ΄μ…˜, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 및 데이터 μ•‘μ„ΈμŠ€ λ ˆμ΄μ–΄λ‘œ λ‚˜λ‰©λ‹ˆλ‹€. νŒ€μ€ DTO (Data Transfer Object), DAO (Data Access Object) 및 μ„œλΉ„μŠ€λ₯Ό μœ„ν•œ νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“­λ‹ˆλ‹€. μžλ™ μ½”λ“œ 생성을 μœ„ν•΄ Lombok 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ Board 클래슀λ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€. 이 ν† λ‘ μ—μ„œλŠ” λ¬Έμ œμ μ„ λΆ„λ¦¬ν•˜κ³  μœ μ§€λ³΄μˆ˜μ„±μ„ κ°œμ„ ν•˜λ©°, μ•„ν‚€ν…μ²˜μ—μ„œ 각 λ ˆμ΄μ–΄μ˜ 역할을 λ‹€λ£Ήλ‹ˆλ‹€. λ˜ν•œ BoardDAO와 BoardService 클래슀λ₯Ό κ΅¬ν˜„ν•˜κΈ° μ‹œμž‘ν•©λ‹ˆλ‹€. BBS용 λ³΄λ“œ μ„œλΉ„μŠ€ 클래슀 κ΅¬ν˜„ν•˜κΈ° λ°œν‘œμžλŠ” κ²Œμ‹œνŒ μ‹œμŠ€ν…œμ— λŒ€ν•œ λ³΄λ“œ μ„œλΉ„μŠ€ 클래슀 κ΅¬ν˜„μ„ μ„€λͺ…ν•©λ‹ˆλ‹€. JDBC 연결을 μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έ μž‘μš©ν•˜λŠ” κ²Œμ‹œλ¬Ό λͺ©λ‘, 보기, 등둝, μˆ˜μ • 및 μ‚­μ œ 방법을 λ§Œλ“œλŠ” 방법에 λŒ€ν•΄ λ…Όμ˜ν•©λ‹ˆλ‹€. 이 μ½”λ“œμ—λŠ” μ˜ˆμ™Έ 처리 및 SQL 쿼리의 맀개 λ³€μˆ˜ 맀핑이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ°œν‘œμžλŠ” ν˜„μž¬ κ΅¬ν˜„μ€ κ°„λ‹¨ν•˜μ§€λ§Œ κ²Œμ‹œλ¬Όμ— μ•‘μ„ΈμŠ€ ν•  λ•Œ 쑰회 수λ₯Ό μ¦κ°€μ‹œν‚€λŠ” 것과 같은 더 λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν¬ν•¨ν•˜λ„λ‘ ν–₯ν›„ ν™•μž₯ 될 수 μžˆλ‹€κ³  μ§€μ ν•©λ‹ˆλ‹€. 남성 μ§‘μ‚¬μ™€μ˜ λΆˆμ—°κ²°ν•œ λŒ€ν™” λŒ€ν™”κ°€ ν˜Όλž€μŠ€λŸ½κ³  μΌκ΄€λœ λ§₯락이 μ—†μ–΄ 의미 μžˆλŠ” μš”μ•½μ„ μ œκ³΅ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€. λŒ€ν™”μ—μ„œ 남성 μ§‘μ•ˆμΌμ‚¬λ₯Ό 반볡적으둜 μ–ΈκΈ‰ν•˜μ§€λ§Œ λͺ…ν™•ν•œ ν† λ‘ μ΄λ‚˜ μ˜μ‚¬κ²°μ • 과정은 μ—†μŠ΅λ‹ˆλ‹€. μŒμ„± μΈμ‹μ΄λ‚˜ λ²ˆμ—­ 였λ₯˜λ‘œ 인해 일련의 κ΄€λ ¨ μ—†λŠ” λ¬Έμž₯으둜 λ³΄μž…λ‹ˆλ‹€. λͺ…ν™•ν•œ μ£Όμ œλ‚˜ λͺ©μ μ΄ μ—†μœΌλ©΄ λ―ΈνŒ…μ„ λ†“μΉœ μ‚¬λžŒμ—κ²Œ 도움이 λ˜λŠ” μš”μ•½μ„ λ§Œλ“€ 수 μ—†μŠ΅λ‹ˆλ‹€. JDBC MySQL κ²Œμ‹œνŒ κ΅¬ν˜„ 이 토둠은 JDBC와 MySQL λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ 3단계 μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ„ λ”°λ₯΄λŠ” κ²Œμ‹œνŒ ν”„λ‘œκ·Έλž¨μ„ κ΅¬ν˜„ν•˜λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€. 메인 ν΄λž˜μŠ€λŠ” ν”„λ ˆμ  ν…Œμ΄μ…˜ λ ˆμ΄μ–΄λ‘œμ„œ, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 λ ˆμ΄μ–΄(BoardService)와 데이터 μ•‘μ„ΈμŠ€ λ ˆμ΄μ–΄(BoardDAO)에 μ—°κ²°λ©λ‹ˆλ‹€. 이 ν”„λ‘œκ·Έλž¨μ€ κ²Œμ‹œλ¬Ό λͺ©λ‘, 보기, 등둝, νŽΈμ§‘ 및 μ‚­μ œ κΈ°λŠ₯을 ν¬ν•¨ν•©λ‹ˆλ‹€. κ΅¬ν˜„μ€ μΈν„°νŽ˜μ΄μŠ€ μ‚¬μš©, μ˜ˆμ™Έ 처리, 그리고 상속과 λ‹€ν˜•μ„±κ³Ό 같은 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° κ°œλ…μ„ λ³΄μ—¬μ€λ‹ˆλ‹€. μ—°μ‚¬λŠ” λ˜ν•œ νš¨μœ¨μ„±μ„ μœ„ν•΄ 정적 λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³ , Lombok 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ κ²Œν„°μ™€ μ„Έν„°λ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•œλ‹€κ³  κ°•μ‘°ν•©λ‹ˆλ‹€. Java FX ν™˜κ²½ μ„€μ • 토둠은 Java FX 개발 ν™˜κ²½ 섀정에 쀑점을 λ‘‘λ‹ˆλ‹€. λ°œν‘œμžλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ Swingμ—μ„œ Java FX둜의 μ „ν™˜μ„ μ„€λͺ…ν•˜κ³ , 개발 ν™˜κ²½μ— Java FX SDK와 μ μ ˆν•œ ν™•μž₯ ν”„λ‘œκ·Έλž¨μ„ μ„€μΉ˜ν•΄μ•Ό ν•œλ‹€κ³  μ–ΈκΈ‰ν•©λ‹ˆλ‹€. ν˜„μž¬ JDK와 ν˜Έν™˜λ˜λŠ” 버전 24λΆ€ν„° μ‹œμž‘ν•˜μ—¬ Java FXλ₯Ό μ‚¬μš©ν•˜μ—¬ 화면에 μ½˜ν…μΈ λ₯Ό ν‘œμ‹œν•˜λŠ” κ°„λ‹¨ν•œ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ κ³„νšμž…λ‹ˆλ‹€. μ—°μ‚¬λŠ” λ˜ν•œ Java UI 개발의 역사와 Swingμ—μ„œ Java FX둜의 진화에 λŒ€ν•΄ μ–ΈκΈ‰ν•©λ‹ˆλ‹€. Java 개발 ν‚€νŠΈ 및 ν”„λ‘œμ νŠΈ 아이디어 이 그룹은 λ‹€μ–‘ν•œ Java Development Kit(JDK) 버전과 μ„€μΉ˜μ— λŒ€ν•΄ λ…Όμ˜ν•˜λ©°, 17, 21, 22, 24 버전을 μ€‘μ‹¬μœΌλ‘œ ν•©λ‹ˆλ‹€. 이듀은 μ‹œμŠ€ν…œ ν™˜κ²½ λ³€μˆ˜μ™€ Java 경둜λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ„€μ •ν•˜λŠ” 방법을 νƒκ΅¬ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ λŒ€ν™”λŠ” κ²Œμ‹œνŒ, 호흑 μ•± 및 μ±„νŒ… μ‹œμŠ€ν…œμ„ ν¬ν•¨ν•œ μ œμ•ˆμ„ 톡해 ν”„λ‘œμ νŠΈ 아이디어 λΈŒλ ˆμΈμŠ€ν† λ°μœΌλ‘œ μ „ν™˜λ©λ‹ˆλ‹€. μ°Έκ°€μžλ“€μ€ 일뢀 아이디어가 ν₯λ―Έλ‘­μ§€λ§Œ ν˜„μž¬ 기술 μˆ˜μ€€μ— λ„ˆλ¬΄ 볡작 ν•  수 있으며 μ‹ μš© 계산기와 같은 κ°„λ‹¨ν•œ ν”„λ‘œμ νŠΈκ°€ 더 μ μ ˆν•  수 μžˆλ‹€κ³  λ™μ˜ν•©λ‹ˆλ‹€. JavaFX 개발 ν™˜κ²½ μ„€μ • 이 토둠은 JavaFXλ₯Ό μ‚¬μš©ν•˜μ—¬ GUI ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ Java 개발 ν™˜κ²½ 섀정에 쀑점을 λ‘‘λ‹ˆλ‹€. λ°œν‘œμžλŠ” JDK, Eclipse 및 Eclipse Marketplace의 e(fx)clipse ν™•μž₯ κΈ°λŠ₯을 ν¬ν•¨ν•œ ν•„μš”ν•œ ꡬ성 μš”μ†Œλ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. λ˜ν•œ JavaFX SDKλ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•œλ‹€κ³  μ–ΈκΈ‰ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€ν™”μ—λŠ” μ„€μΉ˜ 문제 ν•΄κ²° 단계와 JDK 17 LTS, 21/22 λ“± λ‹€μ–‘ν•œ JDK 버전에 λŒ€ν•œ μ°Έμ‘°κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. Java FX 개발 ν™˜κ²½ μ„€μΉ˜ AlohaλŠ” Eclipseμ—μ„œ Java FX 개발 ν™˜κ²½μ˜ μ„€μΉ˜λ₯Ό μ•ˆλ‚΄ν•©λ‹ˆλ‹€. κ·ΈλŠ” λ¨Όμ € Eclipse Marketplaceμ—μ„œ Java FX ν™•μž₯ ν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•©λ‹ˆλ‹€. Eclipseλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ μƒˆλ‘œμš΄ Java FX ν”„λ‘œμ νŠΈ μ˜΅μ…˜μ΄ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€. AlohaλŠ” Java FX SDKλ₯Ό λ‹€μš΄λ‘œλ“œν•˜κ³  μ„€μ •ν•˜μ—¬ ν•„μš”ν•œ νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” μ‚¬μš©μž 라이브러리λ₯Ό Eclipse에 μƒμ„±ν•©λ‹ˆλ‹€. 일뢀 버전 ν˜Έν™˜μ„± λ¬Έμ œκ°€ λ°œμƒν–ˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  AlohaλŠ” Java FX ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€κ³  μƒˆλ‘œ μƒμ„±λœ Java FX 라이브러리λ₯Ό μ‚¬μš©ν•˜λ„λ‘ λΉŒλ“œ 경둜λ₯Ό κ΅¬μ„±ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. λ―ΈνŒ… 토둠이 ν˜Όλž€μŠ€λŸ½κ³  λΆˆλΆ„λͺ…ν•©λ‹ˆλ‹€. λŒ€ν™”λŠ” λ‹¨μ ˆλ˜μ–΄ 있고 λͺ…ν™•ν•œ μ£Όμ œλ‚˜ λͺ©μ μ΄ λΆ€μ‘±ν•΄ λ³΄μž…λ‹ˆλ‹€. μ§‘μ•ˆμΌ, μŒμ‹, 개인 κ²½ν—˜ λ“± λ‹€μ–‘ν•œ μ£Όμ œμ— λŒ€ν•œ λ¬΄μž‘μœ„μ μΈ λŒ“κΈ€μ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. νŠΈλžœμŠ€ν¬λ¦½νŠΈμ—λŠ” "1S"와 "JDK"λΌλŠ” 두 개의 μŠ¬λΌμ΄λ“œ 제λͺ©μ΄ μ–ΈκΈ‰λ˜μ–΄ μžˆμ§€λ§Œ, κ·Έ λ§₯락은 λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€ν™”μ˜ λ‹¨νŽΈμ μΈ 성격 λ•Œλ¬Έμ— κ²°μ •, μ •λ ¬, λ‹€μŒ 단계, 행동 ν•­λͺ© λ˜λŠ” μ—΄λ¦° μ§ˆλ¬Έμ— λŒ€ν•œ 의미 μžˆλŠ” μš”μ•½μ„ μ œκ³΅ν•  수 μ—†μŠ΅λ‹ˆλ‹€. JavaFX 개발 ν™˜κ²½ μ„€μ • κ°€μ΄λ“œ 이 λ―ΈνŒ…μ€ JavaFX와 Scene Builderλ₯Ό μ‚¬μš©ν•˜μ—¬ Java 개발 ν™˜κ²½μ„ μ„€μ •ν•˜λŠ” 데 쀑점을 λ‘‘λ‹ˆλ‹€. AlohaλŠ” μ°Έκ°€μžλ“€μ—κ²Œ JDK 23 μ„€μΉ˜, Eclipse ꡬ성(μƒˆλ‘œμš΄ JDK μ‚¬μš©) 및 Scene Builder μ„€μΉ˜λ₯Ό μ•ˆλ‚΄ν•©λ‹ˆλ‹€. 이듀은 λ ˆμ΄λΈ”κ³Ό λ²„νŠΌ μΆ”κ°€λ₯Ό ν¬ν•¨ν•˜μ—¬ Scene Builderλ₯Ό μ‚¬μš©ν•˜μ—¬ κ·Έλž˜ν”½ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ‘œ κ°„λ‹¨ν•œ JavaFX μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€. μ„Έμ…˜μ€ 이벀트 처리 및 JavaFX μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ—¬λŸ¬ μ°½ 생성에 λŒ€ν•œ κ°„λž΅ν•œ ν† λ‘ μœΌλ‘œ λ§ˆλ¬΄λ¦¬λ©λ‹ˆλ‹€. AI 생성 μ½˜ν…μΈ λŠ” λΆ€μ •ν™•ν•˜κ±°λ‚˜ μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 항상 정확성을 확인해 μ£Όμ„Έμš”.