λͺ©λ‘πŸ–₯ BE λ°±μ—”λ“œ (118)

Bibi's DevLog πŸ€“πŸŽ

[Java] JUnit, AssertJ의 κ°œλ… 및 기초적인 μ‚¬μš©λ²• (단정문, μ–΄λ…Έν…Œμ΄μ…˜)

JUnit의 κ°œλ… 및 assert λ©”μ†Œλ“œ(단정문), μ–΄λ…Έν…Œμ΄μ…˜ 좜처 : 링크1, 링크2, 링크3, 링크4. κ°μ‚¬ν•©λ‹ˆλ‹€πŸ™‡‍β™€οΈπŸ™‡‍♀️ JUnitμ΄λž€? μžλ°”λ₯Ό μœ„ν•œ λ‹¨μœ„ ν…ŒμŠ€νŠΈ 라이브러리(μ˜€ν”ˆμ†ŒμŠ€)이닀. μžλ°” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λŒ€ν•œ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μ‰½κ²Œ ν•΄ μ£ΌλŠ” ν…ŒμŠ€νŠΈμš© ν”„λ ˆμž„μ›Œν¬λΌκ³  μ΄ν•΄ν•˜λ©΄ λœλ‹€. org.junit 단정문 (assert...())으둜 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ μˆ˜ν–‰κ²°κ³Όλ₯Ό νŒλ³„ν•΄ μ•Œλ €μ€€λ‹€. μ–΄λ…Έν…Œμ΄μ…˜μœΌλ‘œ ν…ŒμŠ€νŠΈκ°€ 간결해지도둝 μ§€μ›ν•œλ‹€. ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό Test클래슀둜 λ‚¨κΉ€μœΌλ‘œμ¨ ν…ŒμŠ€νŠΈ historyλ₯Ό μ €μž₯ν•  수 μžˆλ‹€. λ‹¨μœ„ ν…ŒμŠ€νŠΈ Unit Testλž€? λͺ¨λ“  ν•¨μˆ˜μ™€ λ©”μ†Œλ“œμ— λŒ€ν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ test cateλ₯Ό μž‘μ„±ν•˜λŠ” 절차. μ†ŒμŠ€μ½”λ“œμ˜ νŠΉμ • λͺ¨λ“ˆμ΄ μ˜λ„λŒ€λ‘œ μ •ν™•νžˆ λ™μž‘ν•˜λŠ”μ§€ κ²€μ¦ν•œλ‹€. System.out...

[Java] μ ‘κ·Όμ œμ–΄μž

μ ‘κ·Όμ œμ–΄μž Access modifier : 클래슀 μ™ΈλΆ€μ—μ„œμ˜ ν΄λž˜μŠ€μ— λŒ€ν•œ 접근을 μ–΄λŠ μ •λ„κΉŒμ§€ ν—ˆμš©ν• μ§€ 지정할 수 μžˆλŠ” μžλ°” μ˜ˆμ•½μ–΄. 객체지ν–₯ - 정보 은닉(data hiding) : μ‚¬μš©μžκ°€ ꡳ이 μ•Œ ν•„μš” μ—†λŠ” μ •λ³΄λŠ” μ‚¬μš©μžλ‘œλΆ€ν„° μˆ¨κΈ΄λ‹€. μ‚¬μš©μžλŠ” μ΅œμ†Œν•œμ˜ μ •λ³΄λ§ŒμœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ μ†μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€. μžλ°”λŠ” 정보은닉을 κ΅¬μ²΄ν™”ν•˜κΈ° μœ„ν•΄ μ ‘κ·Όμ œμ–΄μžλΌλŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. 클래슀, λ©”μ†Œλ“œ, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, 클래슀 λ³€μˆ˜ μ„ μ–Έμ‹œ μ‚¬μš©ν•œλ‹€. private < default(package-private) < protected < public 순으둜 μ ‘κ·Ό ν—ˆμš© λ²”μœ„κ°€ λ„“λ‹€. private ν•΄λ‹Ή 클래슀 λ‚΄μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ ν•΄λ‹Ή 객체의 public λ©”μ†Œλ“œλ₯Ό ν†΅ν•΄μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ 클래슀 λ‚΄λΆ€μ˜ μ„ΈλΆ€ λ™μž‘μ„ κ΅¬ν˜„ν•  λ•Œ μ‚¬μš©..

[Java] μƒμ„±μžμ™€ κΈ°λ³Έμƒμ„±μž

κΈ°λ³Έμƒμ„±μž (&#39;μžλ°”μ˜ μ‹ &#39; 을 μ°Έκ³ ν•˜λ©° λ‚΄μš©μ„ μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€) μƒμ„±μž constructor : 클래슀의 객체λ₯Ό μƒμ„±ν•˜λŠ” (거의) μœ μΌν•œ 도ꡬ. λ©”μ†Œλ“œμ™€ μ„ μ–Έ 방식이 λΉ„μŠ·ν•˜λ‹€ 차이점) λ¦¬ν„΄νƒ€μž…μ΄ μ—†κ³ , 이름이 클래슀 이름과 κ°™λ‹€. μƒμ„±μžμ˜ λ¦¬ν„΄νƒ€μž…μ€ 항상 κ·Έ 클래슀의 객체이기 떄문에 λ¦¬ν„΄νƒ€μž…μ΄ μ—†λ‹€. μƒμ„±μž 이름이 클래슀 이름과 κ°™μ•„μ•Ό μ»΄νŒŒμΌλŸ¬κ°€ μƒμ„±μžλΌκ³  μΈμ‹ν•œλ‹€. μƒμ„±μžλŠ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ λ©”μ†Œλ“œ 사이에 μ„ μ–Έν•΄μ•Ό ν•œλ‹€. μƒμ„±μžμ˜ 갯수) 클래슀의 객체λ₯Ό 더 νŽΈν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄, λ§€κ°œλ³€μˆ˜λ₯Ό 달리해 μ—¬λŸ¬ μƒμ„±μžλ₯Ό λ§Œλ“€ 수 μžˆλ‹€. κΈ°λ³Έ μƒμ„±μž Default Constructure : 맀개 λ³€μˆ˜κ°€ μ—†λŠ” μƒμ„±μžλ₯Ό κΈ°λ³Έ μƒμ„±μžλΌκ³  ν•œλ‹€. κΈ°λ³Έ μƒμ„±μžλŠ” &#39;λ‹€λ₯Έ μƒμ„±μžκ°€ 없을 경우&#39; 기본으둜 ..

[Java] μƒμˆ˜μ™€ enum

μƒμˆ˜μ™€ enum μƒμˆ˜ Constant : λ³€μˆ˜μ˜ λ°˜λŒ€λ§. λ³€ν•˜μ§€ μ•ŠλŠ” 값을 λœ»ν•¨. ν”„λ‘œκ·Έλž¨μ„ μ§œλ©΄μ„œ λ°”λ€” 일이 μ—†λŠ” 값이 μžˆλ‹€λ©΄, λ³€μˆ˜κ°€ μ•„λ‹Œ μƒμˆ˜λ‘œ μ„ μ–Έν•˜λŠ” 것이 μ’‹λ‹€. μžλ°”μ—μ„œ μƒμˆ˜ μ„ μ–Έ final static μžλ£Œν˜• λŒ€λ¬Έμžμ΄λ¦„ = μƒμˆ˜κ°’ final : (ν•„μˆ˜) λ³€μˆ˜μ— μ„ μ–Έ μ‹œ, ν•œ 번 ν• λ‹Ήν•˜λ©΄ μˆ˜μ •μ΄ λΆˆκ°€λŠ₯함. static : λͺ¨λ“  λ³€μˆ˜κ°€ μ ‘κ·Ό κ°€λŠ₯함 λŒ€λ¬Έμžμ΄λ¦„ : μƒμˆ˜λͺ…은 μƒμˆ˜μž„μ„ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ 전체 λŒ€λ¬Έμžλ‘œ ν‘œν˜„ν•œλ‹€(APPLE처럼) μƒμˆ˜κ°’ : final둜 μ„ μ–Έν•œ λ³€μˆ˜/μƒμˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— 값을 지정해 μ£Όμ–΄μ•Ό ν•œλ‹€. enum μ—΄κ±°ν˜• : μƒμˆ˜μ˜ 집합을 λ‚˜νƒ€λ‚΄λŠ” 객체 (enumeration, μ—΄κ±°) νƒ€μž…μ΄λ©΄μ„œ 클래슀의 일쒅이기도 ν•˜λ‹€. (μ—΄κ±°ν˜• 클래슀) class λŒ€μ‹  enum을 μ‚¬μš©ν•˜λ©΄ enum클래..

[Java] (IntelliJ) ν…ŒμŠ€νŠΈ ν΄λž˜μŠ€κ°€ μƒμ„±λ˜μ§€ μ•ŠλŠ” 였λ₯˜ (Failed to Create Class - Cannot Create Class '...')

문제 IntelliJμ—μ„œ ν…ŒμŠ€νŠΈ ν΄λž˜μŠ€κ°€ μ œλŒ€λ‘œ μƒμ„±λ˜μ§€ μ•ŠλŠ” 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€. 상황 ) Pawnμ΄λΌλŠ” μ΄λ¦„μ˜ 클래슀λ₯Ό λ§Œλ“€κ³ , ν•΄λ‹Ή 클래슀의 ν…ŒμŠ€νŠΈ 클래슀λ₯Ό λ§Œλ“€μ–΄μ•Ό ν–ˆλ‹€. 클래슀λͺ…μ—μ„œ 우클릭 ν›„ Generate - Test 둜 ν…ŒμŠ€νŠΈ νŒŒμΌμ„ λ§Œλ“œλ €κ³  ν•˜μž μ•„λž˜μ™€ 같은 Faild to Create Class - Cannot Create Class &#39;PawnTest&#39;μ•Œλ¦Όμ΄ 뜨고, Classμ•„μ΄μ½˜ ν˜•νƒœκ°€ μ•„λ‹Œ 일반 파일 μ•„μ΄μ½˜ ν˜•νƒœμ˜ PawnTest.java 파일이 μƒμ„±λ˜μ—ˆλ‹€. λ§Œλ“€μ–΄μ§„ PawnTest.java에 μ½”λ“œλ₯Ό μž…λ ₯해도 클래슀 νŒŒμΌμ΄λΌλŠ” 인식이 λ˜μ§€ μ•ŠλŠ”μ§€, μ•„λ¬΄λŸ° μ½”λ“œ ν•˜μ΄λΌμ΄νŠΈλ„ λ‚˜νƒ€λ‚˜μ§€ μ•ŠλŠ” μƒνƒœμ΄λ‹€. μ΄μƒν•œ 것은, 같은 μ†ŒμŠ€ν΄λ” 및 ν…ŒμŠ€νŠΈμ½”λ“œ 폴더에 μœ„μΉ˜ν•œ λ‹€λ₯Έ 클래슀&ν…ŒμŠ€νŠΈ..