전체 κΈ€

Spring/Spring κΈ°λ³Έ

[μŠ€ν”„λ§ 핡심 원리 - 기본편] - 2. 쒋은 객체 지ν–₯ μ„€κ³„μ˜ 5가지 원칙(SOLID)

악덕 λ©΄μ ‘κ΄€μ—κ²Œ 걸리면 λ¬Όμ–΄λ³Ό μˆ˜λ„ μžˆλ‹€λŠ” 쒋은 객체 지ν–₯ μ„€κ³„μ˜ 5가지 원칙 SOLIDλ₯Ό μ•Œμ•„λ³΄μž... SRP 단일 μ±…μž„ 원칙 ( single responsibilty principle ) - ν•œ ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μ±…μž„λ§Œ κ°€μ Έμ•Ό ν•œλ‹€. - ν•˜λ‚˜μ˜ μ±…μž„μ΄λΌλŠ” 것은 λͺ¨ν˜Έν•˜λ‹€. 클 수 있고, μž‘μ„ 수 μžˆλ‹€. λ¬Έλ§₯κ³Ό 상황에 따라 λ‹€λ₯΄λ‹€. - μ€‘μš”ν•œ 기쀀은 변경이닀. 변경이 μžˆμ„ λ•Œ νŒŒκΈ‰ νš¨κ³Όκ°€ 적으면 단일 μ±…μž„ 원칙을 잘 λ”°λ₯Έ 것이닀. OCP 개방-폐쇄 원칙 ( open/closed principle ) - μ†Œν”„νŠΈμ›¨μ–΄ μš”μ†ŒλŠ” ν™•μž₯μ—λŠ” μ—΄λ €μžˆμœΌλ‚˜ λ³€κ²½μ—λŠ” λ‹«ν˜€μžˆμ–΄μ•Ό ν•œλ‹€. " μ–΄λ–»κ²Œ μ½”λ“œμ˜ λ³€κ²½ 없이 κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆμ„κΉŒ? " - λ‹€ν˜•μ„±μ„ ν™œμš©ν•΄ 보자 - μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ μƒˆλ‘œμš΄ 클래슀λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ„œ(κΈ°μ‘΄..

Spring/Spring κΈ°λ³Έ

[μŠ€ν”„λ§ 핡심 원리 - 기본편] - 1. μŠ€ν”„λ§μ΄λž€? / 쒋은 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 뭘까?

μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬ μŠ€ν”„λ§ λΆ€νŠΈ μŠ€ν”„λ§μ„ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ 지원해 μ£ΌλŠ” 것 μŠ€ν”„λ§μ€ μ™œ λ§Œλ“€μ—ˆλ‚˜μš”? (핡심 κ°œλ…) μŠ€ν”„λ§μ€ μžλ°” μ–Έμ–΄ 기반의 ν”„λ ˆμž„μ›Œν¬ 객체 지ν–₯ μ–Έμ–΄ μŠ€ν”„λ§μ€ 객체 지ν–₯ μ–Έμ–΄κ°€ 가진 κ°•λ ₯ν•œ νŠΉμ§•μ„ μ‚΄λ €λ‚΄λŠ” ν”„λ ˆμž„μ›Œν¬ μŠ€ν”„λ§μ€ 쒋은 객체 지ν–₯ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•  수 있게 λ„μ™€μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬λ₯Ό μ΄ν•΄ν•˜λ €λ©΄ " 쒋은 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 뭘까?? "λ₯Ό μ•Œμ•„μ•Ό ν•œλ‹€. 객체 지ν–₯ νŠΉμ§• - 좔상화 더보기 μΆ”μƒν™”λŠ” μ‹€μ œ 세상을 κ°μ²΄ν™”ν•˜λŠ” 게 μ•„λ‹ˆλΌ ν•„μš”ν•œ μ •λ³΄λ§Œμ„ μ€‘μ‹¬μœΌλ‘œ κ°„μ†Œν™”ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. μ‹€μ œ μ§€ν˜•λ„λ³΄λ‹€ μ§€ν•˜μ² μ—­ κ°„μ˜ μƒλŒ€μœ„μΉ˜κ°€ μ€‘μš”ν•˜κ²Œ μ •λ¦¬λœ μ§€ν•˜μ²  노선도가 μΆ”μƒν™”μ˜ λŒ€ν‘œμ μΈ μ˜ˆμ΄λ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œλŠ” κ°μ²΄λ“€μ˜ 곡톡적인 속성과 κΈ°λŠ₯을 μ€‘μ‹¬μœΌλ‘œ μΆ”μƒν™”ν•œλ‹€. ..

Algorithm/파이썬 μ½”λ”©ν…ŒμŠ€νŠΈ

κ·Έλ¦¬λ””μ•Œκ³ λ¦¬μ¦˜ - 6. μ—­μˆ˜μ—΄

λ‚˜μ˜ 풀이 κ°•μ˜ 풀이 λ‹€λ₯Έμ‚¬λžŒ 풀이

Algorithm/파이썬 μ½”λ”©ν…ŒμŠ€νŠΈ

κ·Έλ¦¬λ””μ•Œκ³ λ¦¬μ¦˜ - 5. μ¦κ°€μˆ˜μ—΄ λ§Œλ“€κΈ°

λ‚˜μ˜ 풀이 μˆ˜μ • λ¬Έμžμ—΄ λ‚˜μ—΄ν•˜κΈ° res = “” res = res + “L” κ°•μ˜ν’€μ΄

Spring/Spring μž…λ¬Έ

μŠ€ν”„λ§ μž…λ¬Έ - (19) AOP (Aspect Oriented Programming)

AOP (Aspect Oriented Programming)λž€? 관점 지ν–₯ ν”„λ‘œκ·Έλž˜λ° 관점 지ν–₯은 μ–΄λ–€ λ‘œμ§μ„ κΈ°μ€€μœΌλ‘œ 핡심적인 관점, 뢀가적인 κ΄€μ μœΌλ‘œ λ‚˜λˆ„μ–΄μ„œ 보고 κ·Έ 관점을 κΈ°μ€€μœΌλ‘œ λͺ¨λ“ˆν™” ν•˜κ² λ‹€λŠ” 것 *λͺ¨λ“ˆν™” : μ–΄λ–€ κ³΅ν†΅λœ λ‘œμ§μ΄λ‚˜ κΈ°λŠ₯을 ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬ΆλŠ” 것 예λ₯Ό λ“€μ–΄ 핡심적인 관점은 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 될 수 있고, 뢀가적인 관점은 핡심 λ‘œμ§μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ν–‰ν•΄μ§€λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°, λ‘œκΉ…, 파일 μž…μΆœλ ₯ 등이 될 수 μžˆλ‹€. AOPλŠ” 흩어진 관심사(Crosscutting Concerns)λ₯Ό λͺ¨λ“ˆν™” ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž˜λ° 기법이닀 λͺ¨λ“ˆν™” μ‹œμΌœλ†“μ€ λΈ”λŸ­μ„ Aspect라고 ν•œλ‹€. AOPκ°€ ν•„μš”ν•œ 상황 - λͺ¨λ“  λ©”μ†Œλ“œμ˜ 호좜 μ‹œκ°„μ„ μΈ‘μ •ν•˜κ³  μ‹Άλ‹€λ©΄? - 곡톡 관심 사항(cross-cutting con..

Algorithm/파이썬 μ½”λ”©ν…ŒμŠ€νŠΈ

κ·Έλ¦¬λ””μ•Œκ³ λ¦¬μ¦˜ - 4. μΉ¨λͺ°ν•˜λŠ” 타이타닉

λ‚˜μ˜ 풀이 λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬ν•˜κ³  제일 큰 무게(인덱슀 : 0 ) 와 제일 μž‘μ€ 무게(인덱슀 : -1 ) λ₯Ό λ”ν•œ 값이 λ¬΄κ²Œμ œν•œ m 을 λ„˜λŠ”λ‹€λ©΄ 제일 큰 무게λ₯Ό κ°–λŠ” 인원은 혼자 타야함 ( pop(0) ) κ°•μ˜ 풀이 λ§Œμ•½ λ¦¬μŠ€νŠΈμ— ν•œλͺ…λ§Œ 남아 μžˆμ„ λ•Œ if arr[0]+arr[-1] > limit: # 1λͺ…λ§Œ 타고 갈 경우 arr.pop() cnt += 1 arr[0] + arr[-1] —> 같은 값을 λ”ν•˜κΈ° λ•Œλ¬Έμ— 논리적 였λ₯˜κ°€ λ°œμƒν•œλ‹€ else: # 2λͺ…이 타고 갈 경우 arr.pop(0) arr.pop() cnt += 1 λ¦¬μŠ€νŠΈμ— ν•˜λ‚˜ λ‚¨μ•„μžˆλŠ” 값을 pop(0) ν•˜κ³  κ·Έ λ‹€μŒ pop() 을 ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒ 리슀트의 pop(0) μ—°μ‚°μ‹œ λ’€μ˜ μžλ£Œλ“€μ΄ μ•žμœΌλ‘œ λ‹Ήκ²¨μ§€λŠ” μ—°μ‚° —> 맀우 λΉ„νš¨μœ¨μ μ΄λ‹€ list의..

Spring/Spring μž…λ¬Έ

μŠ€ν”„λ§ μž…λ¬Έ - (18) μŠ€ν”„λ§ 데이터 JPA

더보기 μŠ€ν”„λ§ λΆ€νŠΈμ™€ JPA만 μ‚¬μš©ν•΄λ„ 개발 생산성이 정말 많이 μ¦κ°€ν•˜κ³ , κ°œλ°œν•΄μ•Όν•  μ½”λ“œλ„ ν™•μ—°νžˆ μ€„μ–΄λ“­λ‹ˆλ‹€. 여기에 μŠ€ν”„λ§ 데이터 JPAλ₯Ό μ‚¬μš©ν•˜λ©΄, 기쑴의 ν•œκ³„λ₯Ό λ„˜μ–΄ 마치 λ§ˆλ²•μ²˜λŸΌ, 리포지토리에 κ΅¬ν˜„ 클래슀 없이 μΈν„°νŽ˜μ΄μŠ€ 만으둜 κ°œλ°œμ„ μ™„λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 반볡 κ°œλ°œν•΄μ˜¨ κΈ°λ³Έ CRUD κΈ°λŠ₯도 μŠ€ν”„λ§ 데이터 JPAκ°€ λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€. μŠ€ν”„λ§ λΆ€νŠΈμ™€ JPAλΌλŠ” 기반 μœ„μ—, μŠ€ν”„λ§ 데이터 JPAλΌλŠ” ν™˜μƒμ μΈ ν”„λ ˆμž„μ›Œν¬λ₯Ό λ”ν•˜λ©΄ 개발이 정말 μ¦κ±°μ›Œμ§‘λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ μ‘°κΈˆμ΄λΌλ„ λ‹¨μˆœν•˜κ³  반볡이라 μƒκ°ν–ˆλ˜ 개발 μ½”λ“œλ“€μ΄ ν™•μ—°ν•˜κ²Œ μ€„μ–΄λ“­λ‹ˆλ‹€. λ”°λΌμ„œ κ°œλ°œμžλŠ” 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ°œλ°œν•˜λŠ”λ°, 집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€λ¬΄μ—μ„œ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ μŠ€ν”„λ§ 데이터 JPAλŠ” 이제 선택이 μ•„λ‹ˆλΌ ν•„μˆ˜ ..

hello_u
😜