회고2022. 12. 16. 13:41[μš°ν…Œμ½”] ν”„λ¦¬μ½”μŠ€ 4μ£Όμ°¨

μ›λž˜ ν”„λ¦¬μ½”μŠ€λŠ” μ•½ ν•œ 달 전에 λ§ˆλ¬΄λ¦¬λ˜μ—ˆμ§€λ§Œ, ν”„λ¦¬μ½”μŠ€κ°€ λλ‚œ 이후 λ°€λ €μžˆλ˜ 각쒅 νŒ€ν”Œκ³Ό κΈ°λ§κ³ μ‚¬λ‘œ μΈν•˜μ—¬ λ’€λŠ¦κ²Œ 글을 μž‘μ„±ν•˜κ²Œ λ˜μ—ˆλ‹€. 4μ£Όμ°¨λŠ” 닀리 κ±΄λ„ˆκΈ° κ²Œμž„μ„ κ΅¬ν˜„ν•˜λŠ” κ²ƒμ΄μ—ˆλŠ”λ°, κ²Œμž„μ˜ 룰이 μ˜€μ§•μ–΄ κ²Œμž„μ—μ„œ λ‚˜μ˜€λŠ” 닀리 κ±΄λ„ˆκΈ° κ²Œμž„κ³Ό κ°™μ•„μ„œ 금방 이해할 수 μžˆμ—ˆλ‹€. ν•˜μ§€λ§Œ λ§ˆμ§€λ§‰ μ£Όμ°¨λ‹΅κ²Œ μš”κ΅¬μ‚¬ν•­λ„ λ§Žμ•˜κ³ , 특히 MVC νŒ¨ν„΄μ„ μ μš©ν•΄μ„œ 문제λ₯Ό ν•΄κ²°ν•˜λΌλŠ” μ˜λ„κ°€ λ“œλŸ¬λ‚˜μžˆμ–΄ 더 κΉŒλ‹€λ‘œμ› λ‹€. λ°°μ› λ˜ 점 확인, 또 확인 μ²˜μŒμ— κ΅¬ν˜„μ„ μ‹œμž‘ν•˜κΈ° μ „, κ΅¬ν˜„ν•΄μ•Ό ν•  κΈ°λŠ₯κ³Ό μš”κ΅¬μ‚¬ν•­μ„ λ¦¬λ“œλ―Έ νŒŒμΌμ— 정리λ₯Ό ν–ˆμ—ˆλŠ”λ°λ„ λΆˆκ΅¬ν•˜κ³  μ€‘μš”ν•œ κΈ°λŠ₯을 빼먹은 채 κ΅¬ν˜„μ„ ν–ˆλ‹€. (처음 정리λ₯Ό ν•  λ•Œ λ†“μΉœ κ²ƒμ΄μ—ˆλ‹€...) κ·Έλ‚˜λ§ˆ μ΄ˆλ°˜μ— λ°œκ²¬μ„ ν•΄μ„œ 망정이지 μ œμΆœν•œ 뒀에 λ°œκ²¬ν–ˆμœΌλ©΄ 정말 큰일 λ‚  λ»”ν–ˆλ‹€. λ†“μΉœ 사항이 μ—†λŠ”μ§€ ..

회고2022. 11. 15. 20:39[μš°ν…Œμ½”] ν”„λ¦¬μ½”μŠ€ 3μ£Όμ°¨

이번 μ£Ό κ³Όμ œλŠ” 둜또 κ²Œμž„μ„ κ΅¬ν˜„ν•˜λŠ” κ²ƒμ΄μ—ˆλŠ”λ°, μ§€λ‚œ 주보닀 κ΅¬ν˜„ν•΄μ•Όν•˜λŠ” κΈ°λŠ₯도 λ§Žμ•„μ‘Œκ³ , μ§€μΌœμ•Ό ν•  κ·œμΉ™λ„ λŠ˜μ–΄λ‚˜λ©΄μ„œ μ„ λœ» μ‹œμž‘ν•˜κΈ°κ°€ μ–΄λ €μ› λ‹€. μ§€λ‚œ μ£Όμ—λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” κ³Όμ •μ—μ„œ 좜λ ₯ λ¬Έμžμ—΄μ„ μƒμˆ˜λ‘œ μ΄μš©ν•˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ ν•˜λ“œμ½”λ”© ν–ˆλ˜ 점과 μ˜ˆμ™Έ μΌ€μ΄μŠ€λ₯Ό λ†“μ³€λ‹€λŠ” 점을 μΈμ§€ν•˜λ©΄μ„œ 이번 μ£Ό κ³Όμ œμ—μ„œλŠ” 같은 μ‹€μˆ˜λ₯Ό λ°˜λ³΅ν•˜μ§€ μ•Šκ³ μž ν–ˆλ‹€. 배운 점 Getter λ©”μ„œλ“œ μ‚¬μš© μ΅œμ†Œν™” μ™ΈλΆ€μ—μ„œ 객체의 데이터λ₯Ό λ°›μ•„ λ‹€λ₯΄κ²Œ λ³€ν˜•ν•¨μœΌλ‘œμ¨ 객체 μ§€ν–₯의 원칙 쀑 ν™•μž₯μ—λŠ” μ—΄λ €μžˆμœΌλ‚˜ λ³€κ²½μ—λŠ” λ‹«ν˜€μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 개방-폐쇄 원칙을 μœ„λ°˜ν•  μ—¬μ§€κ°€ 있기 λ•Œλ¬Έμ— getter λ©”μ„œλ“œλ₯Ό μ΅œμ†Œν™”ν•˜λ €κ³  λ…Έλ ₯ν–ˆλ‹€. 이전에도 getter μ‚¬μš©μ„ μ§€μ–‘ν•΄μ•Όν•œλ‹€λŠ” 것을 λ“€μ–΄λ³Έ 적이 μžˆμ§€λ§Œ, λ‹Ήμž₯ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 데 κΈ‰κΈ‰ν–ˆμŒμ„ ν•‘κ³„λ‘œ μ–΄λ–»κ²Œ ..

회고2022. 11. 14. 04:04[μš°ν…Œμ½”] ν”„λ¦¬μ½”μŠ€ 2μ£Όμ°¨

이번 μ£Ό κ³Όμ œλŠ” 숫자 야ꡬ κ²Œμž„μ„ κ΅¬ν˜„ν•˜λŠ” κ²ƒμ΄μ—ˆλ‹€. μ§€λ‚œμ£Όμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ κ΅¬ν˜„ν•΄μ•Ό ν•  κΈ°λŠ₯을 μ •λ¦¬ν•˜μ—¬ λͺ©λ‘μ„ λ§Œλ“€μ—ˆκ³ , μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μ‹œμž‘ν–ˆλ‹€. λ‹€λ₯Έ μ°Έκ°€μžλΆ„λ“€μ˜ μ§€λ‚œμ£Ό 과제 κ΅¬ν˜„ μ½”λ“œλ₯Ό λ³΄λ©΄μ„œ 느꼈던 게 정말 κ°„κ²°ν•˜μ§€λ§Œ, 가독성도 μ’‹μ•„μ„œ μ½”λ“œλ₯Ό μ΄λ ‡κ²Œ κΉ”λ”ν•˜κ²Œ μž‘μ„±ν•  μˆ˜λ„ μžˆκ΅¬λ‚˜λΌλŠ” κ²ƒμ΄μ—ˆλ‹€. indentκ°€ 크지 μ•ŠμœΌλ©΄μ„œλ„ λ©”μ„œλ“œ κ°„ 의쑴 관계도 크지 μ•Šμ•˜λ‹€. 그에 λΉ„ν•΄ λ‚΄ μ½”λ“œλŠ” λ„ˆλ¬΄ indentλ₯Ό μ€„μ΄λŠ” κ²ƒμ—λ§Œ μ΄ˆμ μ„ 맞좘 λŠλ‚Œμ΄λΌμ„œ λ©”μ„œλ“œ κ°„ 의쑴 관계가 μ»Έλ‹€. κ·Έλž˜μ„œ 이번 μ£Ό 과제λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ λͺ©ν‘œλ‘œ λ‘μ—ˆλ˜ 점이 ν•˜λ‚˜μ˜ λ©”μ„œλ“œκ°€ ν•˜λ‚˜μ˜ 역할을 ν•˜κ²Œ ν•˜λ©΄μ„œλ„ 의쑴 관계λ₯Ό 많이 λ§Œλ“€μ§€ μ•ŠλŠ” 것과 전체 μ½”λ“œλŠ” λ„ˆλ¬΄ κΈΈμ–΄μ§€μ§€ μ•Šκ²Œ μž‘μ„±ν•˜λŠ” κ²ƒμ΄μ—ˆλ‹€. μ μ ˆν•œ 자료ꡬ쑰 λͺ©ν‘œλ₯Ό μΆ©μ‘±μ‹œν‚€κΈ° μœ„ν•΄μ„œλŠ” μžλ°”μ˜ ..

Etc2022. 11. 14. 04:02[JUnit5] λ©”μ„œλ“œλͺ…이 ν•œκΈ€μΌ λ•Œ μ‹€ν–‰ 였λ₯˜

였λ₯˜ 원인에 λŒ€ν•œ μΆ”μΈ‘μœΌλ‘œ κ°€λ“ν•œ ν¬μŠ€νŒ…μž…λ‹ˆλ‹€πŸ˜’ μš°ν…Œμ½” ν”„λ¦¬μ½”μŠ€ 과제 쀑 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  λ•Œ ν•œ λ©”μ„œλ“œλ§Œ μ‹€ν–‰ν•  경우 λ‹€μŒκ³Ό 같은 였λ₯˜κ°€ λ°œμƒν•˜μ˜€λ‹€. Internal Error occurred. org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:160) at org.junit.platform.launcher.core.EngineDiscoveryOrchestrato..

회고2022. 11. 14. 03:59[μš°ν…Œμ½”] ν”„λ¦¬μ½”μŠ€ 1μ£Όμ°¨

이번 기수 λͺ¨μ§‘μ—μ„œλŠ” μ§€μ›μž λͺ¨λ‘κ°€ ν”„λ¦¬μ½”μŠ€μ— μ°Έμ—¬ν•˜κ²Œ λ˜λ©΄μ„œ, κ°μ‚¬ν•˜κ²Œλ„ ν•œ 달 λ™μ•ˆ 쒋은 κ²½ν—˜μ„ ν•  수 μžˆλŠ” 기회λ₯Ό μ–»κ²Œ λ˜μ—ˆλ‹€. μ €λ²ˆ 기수의 ν”„λ¦¬μ½”μŠ€ λ―Έμ…˜μ΄ 숫자 μ•Όκ΅¬μ˜€λ˜ 것과 λ‹€λ₯΄κ²Œ μ΄λ²ˆμ—λŠ” 7개의 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것이 ν•œ μ£Όκ°„ λ―Έμ…˜μ΄μ—ˆλ‹€. 배운 점 μ½”λ“œ μž‘μ„± κ·œμΉ™ 및 컀밋 κ·œμΉ™ μ€€μˆ˜ ν‰μ†Œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄μ„œ 거의 κ·œμΉ™μ„ μ‹ κ²½ μ“°μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ—, 이번 ν”„λ¦¬μ½”μŠ€μ— μ°Έκ°€ν•˜κ²Œ λ˜λ©΄μ„œ κ·œμΉ™μ— μ΅μˆ™ν•΄μ Έμ•Όκ² λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€. κ·œμΉ™μ„ μ΅œλŒ€ν•œ μ€€μˆ˜ν•˜λ©΄μ„œ μ½”λ”©ν•˜λ €λ‹ˆ 문제 λ‚œμ΄λ„μ— λΉ„ν•΄ κ½€ λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λœ 것 κ°™λ‹€. λ˜ν•œ ν‰μ†Œ κΉƒν—ˆλΈŒλ₯Ό 기둝용으둜 혼자 μ‚¬μš©ν–ˆλ‹€ λ³΄λ‹ˆ 컀밋도 ν•œ λ²ˆμ— λͺ°μ•„μ„œ ν•˜κ³  λ©”μ‹œμ§€λ„ λŒ€μΆ© μž‘μ„±ν•˜λ‹€κ°€, μž‘μ€ λ‹¨μœ„λ‘œ μ»€λ°‹ν•˜λ©΄μ„œ λ©”μ‹œμ§€λ„ κ·œμΉ™μ— 맞좰 μž‘μ„±ν•˜λ‹€ λ³΄λ‹ˆ 계속 μ‹€μˆ˜ν•΄μ„œ 원격 브랜치둜 ν‘Έ..

Language & Framework/Spring2022. 11. 14. 01:44[μŠ€ν”„λ§ 핡심 원리] μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ™€ μŠ€ν”„λ§ 빈

μŠ€ν”„λ§ 핡심 μ›λ¦¬μ˜ κ°•μ˜ λ‚΄μš©μ„ μ •λ¦¬ν•œ ν¬μŠ€νŒ…μž…λ‹ˆλ‹€. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆ 생성 μ•„λž˜ μ½”λ“œλŠ” μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•˜λŠ” μ˜ˆμ‹œ μ½”λ“œμ΄λ‹€. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContextλ₯Ό μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλΌκ³  ν•œλ‹€. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ§Œλ“œλŠ” λ°©λ²•μ—λŠ” λŒ€ν‘œμ μœΌλ‘œ 두 κ°€μ§€κ°€ μžˆλ‹€. XML 기반 μ• λ…Έν…Œμ΄μ…˜ 기반 μžλ°” μ„€μ • 클래슀 μœ„μ—μ„œμ˜ μ˜ˆμ‹œ μ½”λ“œκ°€ 2번 방법을 μ΄μš©ν•œ κ²ƒμœΌλ‘œ, new μ—°μ‚°μžλ₯Ό 톡해 μƒμ„±λœ AnnotationConfigApplicationContextλŠ” ApplicationContext μΈν„°νŽ˜μ΄μŠ€μ˜ κ΅¬ν˜„μ²΄μ΄λ‹€. μ—„λ°€νžˆ λ”°μ§€λ©΄ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ—λŠ” ..

Language & Framework/Spring2022. 11. 14. 01:32[μŠ€ν”„λ§ 핡심 원리] 예제 섀계 및 객체 μ§€ν–₯ 원리 적용

μŠ€ν”„λ§ 핡심 μ›λ¦¬μ˜ κ°•μ˜ λ‚΄μš©μ„ μ •λ¦¬ν•œ ν¬μŠ€νŒ…μž…λ‹ˆλ‹€. 예제 섀계 λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­κ³Ό 섀계 νšŒμ› νšŒμ›κ°€μž… 및 쑰회 κ°€λŠ₯ 일반, VIP λ“±κΈ‰ ꡬ뢄 νšŒμ› λ°μ΄ν„°λŠ” 자체 DBλ₯Ό ꡬ좕할지 μ™ΈλΆ€ μ‹œμŠ€ν…œκ³Ό 연동할지 미확정인 μƒνƒœ μ£Όλ¬Έκ³Ό 할인 μ •μ±… νšŒμ›μ€ μƒν’ˆμ„ μ£Όλ¬Έν•  수 있음 νšŒμ› 등급에 따라 λ‹€λ₯Έ 할인 μ •μ±… 적용 ν˜„μž¬ 할인 정책은 λͺ¨λ“  VIP λ“±κΈ‰μ˜ νšŒμ›μ—κ²Œ 1000원을 ν• μΈν•΄μ£ΌλŠ” κ³ μ • κΈˆμ•‘ 할인을 λ…Όμ˜ν•˜κ³  μžˆμœΌλ‚˜ μ°¨ν›„ 변경될 κ°€λŠ₯성이 λ†’μœΌλ©°, 상황에 따라 할인을 μ•„μ˜ˆ μ μš©ν•˜μ§€ μ•Šμ„ 수 있음 νšŒμ› 도메인 섀계 νšŒμ› 도메인 ν˜‘λ ₯ 관계 (κ°„λž΅ν•œ 관계도) νšŒμ› 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ (κ΄€κ³„λ„μ˜ 각 μš”μ†Œλ₯Ό 클래슀/μΈν„°νŽ˜μ΄μŠ€ν™” ν•œ 것) νšŒμ› 객체 λ‹€μ΄μ–΄κ·Έλž¨ (ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‹€μ œ 이용 μ‹œ 순차적으둜 μ—°κ²°λ˜λŠ” 관계도) νšŒμ› μ„œλΉ„μŠ€ ꡬ..

Language & Framework/Spring2022. 11. 14. 01:29[μŠ€ν”„λ§ 핡심 원리] 객체 μ§€ν–₯ 섀계와 μŠ€ν”„λ§

μŠ€ν”„λ§ 핡심 μ›λ¦¬μ˜ κ°•μ˜ λ‚΄μš©μ„ μ •λ¦¬ν•œ ν¬μŠ€νŒ…μž…λ‹ˆλ‹€. μŠ€ν”„λ§μ΄λž€? μžλ°” μ–Έμ–΄λ₯Ό 기반으둜 ν•œ ν”„λ ˆμž„μ›Œν¬λ‘œ, 쒋은 객체 μ§€ν–₯ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•  수 있게 λ„μ™€μ£ΌλŠ” 도ꡬ이닀. κ·Έλ ‡λ‹€λ©΄ 쒋은 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄λž€ λ¬΄μ—‡μΌκΉŒ? 객체 μ§€ν–₯은 λ„€ κ°€μ§€ νŠΉμ§•μ„ κ°€μ§€κ³  μžˆλ‹€. 좔상화 세뢀사항은 μƒλž΅ν•˜κ³  객체의 속성 쀑 핡심적인 μš”μ†Œλ§Œμ„ λͺ¨λΈν™” ν•˜λŠ” 것 μΊ‘μŠν™” νŠΉμ •ν•œ ν΄λž˜μŠ€μ™€ κ΄€λ ¨λœ λ°μ΄ν„°μ˜ μΌλΆ€μ—λ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜κ²Œ ν•˜κ³ , ν΄λž˜μŠ€κ°€ μž‘λ™ν•˜λŠ” 방식에 λŒ€ν•œ μ‹€μ œ κ΅¬ν˜„ 정보λ₯Ό μˆ¨κΈ°λŠ” 것 상속 μƒμœ„ κ³„μΈ΅μ˜ 클래슀λ₯Ό λ¬Όλ €λ°›μ•„ λ‹€λ₯Έ νŠΉμ§•λ“€μ„ μΆ”κ°€μ μœΌλ‘œ κ΅¬ν˜„ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것 λ‹€ν˜•μ„± μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받은 객체가 μ—¬λŸ¬κ°€μ§€ νƒ€μž…μ„ κ°€μ§ˆ 수 μžˆμ–΄ 객체의 μœ μ—°ν•œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ„λ‘ ν•˜λŠ” 것 λ‹€ν˜•μ„±μ€ μ—­ν• κ³Ό κ΅¬ν˜„μœΌλ‘œ ꡬ뢄이 κ°€λŠ₯ν•˜λ‹€λŠ” μž₯점..

image