[TIL #Day79] 22/06/14

Yeppi's 개발 일기·2022λ…„ 6μ›” 14일
0

TIL

λͺ©λ‘ 보기
2/23

🀍 TIL μž‘μ„± 방식 🀍 κ°„λ‹¨ν•˜κ²Œ μš”μ•½ν•˜μ—¬ μ •λ¦¬ν•˜μž
🀍 TIL λ‚΄μš© μœ ν˜• 🀍 개발 곡뢀 + 자기 κ³„λ°œ + κ·Έ μ™Έ λ‹€λ₯Έ ν™œλ™λ„ ν¬ν•¨ν•˜μž
🀍 μ΄λ ‡κ²Œ 맀일 κ³΅λΆ€ν•œ λ‚΄μš©μ΄ μŒ“μ΄λ©΄ νŒŒνŠΈλ³„λ‘œ μ •λ¦¬ν•˜μž
🀍 νŒŒνŠΈλ³„λ‘œ μ •λ¦¬λœ μžμ„Έν•œ λͺ¨λ“  λ‚΄μš©μ€ πŸ‘‰λ§ν¬λ‘œ κ°€λ³΄μž



πŸ“ŒTo Do ListπŸ“Œ

βŒ›TimeLine AM 10:00 ~ PM 23:30βŒ›

  • μ•Œκ³ λ¦¬μ¦˜ + commit
  • 운영체제
  • Spring ν€΄μ¦ˆ 3문제 λ§Œλ“€κΈ°
  • μΈν”„λŸ° Spring μ„Ήμ…˜ 2
  • μ‹€κ°• Spring
  • Spring AOP λΈ”λ‘œκ·Έ μž‘μ„±


πŸ“ŒStudyπŸ“Œ

λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜ 2단계

πŸ‘‰ velog λ°±μ€€ μ•Œκ³ λ¦¬μ¦˜ μ‹œλ¦¬μ¦ˆ
πŸ‘‰ github

  • BefferReader, InputStreamReader, StringTokenizer μ‚¬μš©
  • if ~ else if ~ else, 쀑첩 if λ¬Έ μ‚¬μš©



운영체제

πŸ‘‰ velog OS μ‹œλ¦¬μ¦ˆ

  • 컴퓨터 μ‹œμŠ€ν…œμ˜ κΈ°λ³Έ ꡬ성
    • ν•˜λ“œμ›¨μ–΄, 운영체제, μ‘μš© ν”„λ‘œκ·Έλž¨, μ‚¬μš©μžμ˜ 관계
  • 운영체제 λͺ©μ κ³Ό μ‚¬μš© 이유
    • 컴퓨터 μ‹œμŠ€ν…œ 및 ν•˜λ“œμ›¨μ–΄λ₯Ό 효율적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•΄
  • 운영체제 μ •μ˜ 및 κΈ°λŠ₯
    • 컀널과 μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž¨μ˜ μƒν˜Έμž‘μš©
    • μžμ› 관리 & λΆ„λ°° & μ œμ–΄
  • λΆ€νŒ…, λΆ€νŠΈμŠ€νŠΈλž©
    • PC 전원 κ³΅κΈ‰λœ μ‹œμ λΆ€ν„° μš΄μ˜μ²΄μ œκ°€ λ©”λͺ¨λ¦¬μ—μ„œ λ™μž‘ν•˜κΈ°κΉŒμ§€μ˜ λͺ¨λ“  κ³Όμ •



Spring

πŸ‘‰ velog Srping μ‹œλ¦¬μ¦ˆ
πŸ‘‰ github

μ‹€μ‹œκ°„ κ°•μ˜ - MVC κ°œλ…

  • MVC ꡬ쑰
    • Servlet Container λŠ” DispatcherServlet 만 μƒμ„±ν•˜κ³ , λ‚˜λ¨Έμ§€λŠ” μƒμ„±ν•˜μ§€ μ•ŠμŒ
      • 생성 ν•΄μ£ΌλŠ” 것 : Servlet, Filter, Litenser
    • Spring Container λŠ” Servlet Container κ°€ 생성해주지 μ•ŠλŠ” 것을 μƒμ„±ν•΄μ€Œ
      • 생성 ν•΄μ£ΌλŠ” 것 : HandlerMapping, Controller, ViewResolver
  • μžλ°”μ™€ Servlet 으둜만 κ΅¬ν˜„ν•œ MVC κ°œλ…μ— Spring 적용
    • 직접 κ°œλ°œν•œ Controller λ₯Ό Spring Controller 둜 변경해보기
    • xml 파일과 ModelAndView μ‚¬μš©
  • Map κ³Ό Property 의 차이
    • λ°°μ—΄κ³Ό 객체λ₯Ό λ‹΄λŠ”λ‹€ VS λ¬Έμžμ™€ 숫자만 λ‹΄λŠ”λ‹€

μΈν”„λŸ° κ°•μ˜ - μŠ€ν”„λ§ 핡심 원리(기본편)

  • κ°„λ‹¨ν•œ νšŒμ› 관리 μ„œλΉ„μŠ€ 예제 λ§Œλ“€κΈ°
  • μš”κ΅¬μ‚¬ν•­ 및 λ‹€μ΄μ–΄κ·Έλž¨μ„ 보고 개발
    • 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ : 정적 λ‹€μ΄μ–΄κ·Έλž¨
    • 객체 λ‹€μ΄μ–΄κ·Έλž¨ : 동적 λ‹€μ΄μ–΄κ·Έλž¨
  • μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜κΈ° μ „, μ˜€λ‘œμ§€ μžλ°”μ˜ 객체지ν–₯ νŠΉμ§•μ„ μ‚΄λ €μ„œ 개발
    • λ‹€ν˜•μ„±μ˜ κ°œλ…μ„ 적용
    • μ–΄λ–€ κΈ°λŠ₯을 μœ μ§€λ³΄μˆ˜ν•  λ•Œ λ‹€λ₯Έ κΈ°λŠ₯을 건듀이지 μ•Šμ•„λ„ 되게 끔 개발

Spring ν€΄μ¦ˆ λ§Œλ“€μ–΄λ³΄κΈ°

  • Spring κ΄€λ ¨ μ—¬νƒœκ» 배운 λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ λ§Œλ“€μ–΄λ³΄μ•˜λ‹€.

문제 1. λ‹€μŒ 쀑 핡심 둜직(핡심 관심)을 μ²˜λ¦¬ν•˜κΈ°μ— κ°€μž₯ ν™•μ‹€ν•œ κ²½μš°λŠ”? (1가지 선택)

1) 각 Method 에 logging 이 ν•„μš”ν•œ 경우
2) 각 Method 에 Exception 이 ν•„μš”ν•œ 경우
3) 각 Method 에 Transaction 이 ν•„μš”ν•œ 경우
4) 각 Method 에 Business Logic 이 ν•„μš”ν•œ 경우

μ •λ‹΅ : 4)

λΉ„μ¦ˆλ‹ˆμŠ€ ν΄λž˜μŠ€μ—μ„œ μ€‘λ³΅λ˜λŠ” μ—¬λŸ¬ λΉ„μ¦ˆλ‹ˆμŠ€ λ©”μ„œλ“œλ₯Ό λΆ„λ¦¬ν•˜μ—¬ μž¬μ‚¬μš©μ„± 및 가독성을 μ¦κ°€μ‹œν‚¨λ‹€.

문제 2. ν•΄λ‹Ή 클래슀λ₯Ό 생성할 λ•Œ, ν†΅μƒμ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 클래슀λͺ…μœΌλ‘œ μ•„λž˜ 두 빈칸( _ )을 μ±„μš°μ‹œμ˜€.

1)번과 2)λ²ˆμ€ 각각 11μΉΈ, 6칸이닀.
1) Business class / λΉ„μ¦ˆλ‹ˆμŠ€ 클래슀인 경우 : Facam_ _ _ _ _ _ _ _ _ _ _ .java
2) Advice class / νš‘λ‹¨ 관심 클래슀인 경우 : Facam_ _ _ _ _ _ .java

μ •λ‹΅ : 1) ServiceImpl 2) Advice

문제 3. Pointcut 은 ν•„ν„°λ§λœ Joinpoint λ˜λŠ” ν•„ν„°λ§λœ Business Method 라고 ν•  수 있고, Pointcut 은 expression μ–΄λ–»κ²Œ μ„€μ •ν•˜λŠλƒμ— λ”°λΌμ„œ 필터링이 달라진닀. λ‹€μŒ 쀑 Pointcut μ—μ„œ 필터링을 ν•˜λŠ” 이유λ₯Ό λͺ¨λ‘ κ³ λ₯΄μ‹œμ˜€(닀쀑 선택)

1) νš‘λ‹¨ κ΄€μ‹¬μœΌλ‘œ κ΅¬ν˜„ν•œ κΈ°λŠ₯을 μ›ν•˜λŠ” λ©”μ„œλ“œμ—μ„œλ§Œ λ™μž‘μ‹œν‚€κΈ° μœ„ν•΄
2) νŠΈλžœμž­μ…˜ 처리λ₯Ό μ›ν•˜λŠ” λ©”μ„œλ“œμ—μ„œλ§Œ λ™μž‘μ‹œν‚€κΈ° μœ„ν•΄
3) 핡심 κ΄€μ‹¬μœΌλ‘œ κ΅¬ν˜„ν•œ κΈ°λŠ₯을 μ›ν•˜λŠ” λ©”μ„œλ“œμ—μ„œλ§Œ λ™μž‘μ‹œν‚€κΈ° μœ„ν•΄
4) νŠΉμ • κΈ°λŠ₯을 전체 λ©”μ„œλ“œλ‚˜ νŠΉμ • λ©”μ„œλ“œμ—μ„œ μ„ νƒν•˜μ§€ μ•Šκ³ , ν΄λž˜μŠ€μ— 일괄 μ μš©ν•˜μ—¬ μ‚¬μš©ν•˜κΈ° μœ„ν•΄

μ •λ‹΅ : 1) 2)

Pointcut 이 필터링을 ν•˜λŠ” μ΄μœ λŠ” νš‘λ‹¨ 관심, 즉 κ³΅ν†΅λœ κΈ°λŠ₯듀을 μ–΄λ–€ λ©”μ„œλ“œμ—μ„œ μ‚¬μš©ν•  지 μ„ νƒν•˜μ—¬ λ™μž‘ν•  수 μžˆλ„λ‘ β€˜ν•„ν„°λ§β€™μ„ ν•΄μ£ΌκΈ° μœ„ν•¨μ΄λ‹€. λͺ¨λ“  λ©”μ„œλ“œλ“€μ—μ„œ μ‚¬μš©ν•  지, νŠΉμ • λ©”μ„œλ“œμ—μ„œ μ‚¬μš©ν•  지에 λŒ€ν•œ λ²”μœ„λŠ” execution ν‘œν˜„μ‹μœΌλ‘œ μ„€μ •ν•  수 μžˆλ‹€.




πŸ“ŒνšŒκ³ πŸ“Œ

회고둝 μ΄λ ‡κ²Œ μž‘μ„±ν•˜λŠ” 게 λ§žλ‚˜...? ν•˜λ£¨ λ‹¨μœ„, 리얼 TILλ₯Ό 써본건 처음이라 아직 잘 λͺ¨λ₯΄κ² μ§€λ§Œ, μ•„μ£Ό μ—΄μ‹¬νžˆ 였늘 ν•˜λ£¨λ„ 보낸 것 κ°™μ•„μ„œ λΏŒλ“―ν•˜λ‹€. 배운 λ‚΄μš©μ„ λ‹€μ‹œ μ‚΄νŽ΄λ³΄λ©° μƒκΈ°μ‹œν‚¬ 수 μžˆμ–΄μ„œ μ’‹μ•˜λ‹€. 내일도 ν™”μ΄νŒ… 일찍 μΌμ–΄λ‚˜μž

profile
imaginative and free developer. λ°±μ—”λ“œ / UX / DATA / κΈ°νšμ— κ΄€μ‹¬μžˆμ§€λ§Œ κ³ μ–‘μ΄λŠ” μ—†λŠ” μ˜ˆλΉ„ κ°œλ°œμžπŸ‘‹

0개의 λŒ“κΈ€