λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
728x90
λ°˜μ‘ν˜•

πŸ–₯ Computer Science/Programming12

[Programming] μœ λ‹ˆμ½”λ“œ(Unicode)λž€? (feat. UTF-8,UTF-16) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€. μ˜€λŠ˜μ€ ν‰μ†Œμ— 많이 듀어보긴 ν–ˆμ§€λ§Œ μ •ν™•ν•œ λœ»μ€ λͺ¨λ₯΄λŠ” Unicode,UTF에 λŒ€ν•΄ μ •ν™•νžˆ 곡뢀λ₯Ό 해보렀고 ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ Unicodeλž€? μ΄ˆκΈ°μ— μ»΄ν“¨ν„°μ—μ„œλŠ” μ•„μŠ€ν‚€λ₯Ό μ‚¬μš©ν•˜μ˜€λŠ”λ°, 이것은 8λΉ„νŠΈλ§Œμ„ μ‚¬μš©ν•΄μ„œ 256개 문자λ₯Ό ν‘œν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. (λΉ„νŠΈλ₯Ό λͺ¨λ₯΄μ‹œλŠ” 뢄듀은 μ—¬κΈ° μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€!) ν•˜μ§€λ§Œ 256개의 λ¬Έμžλ‘œλŠ” μ„Έκ³„μ˜ 수 λ§Žμ€ μ–Έμ–΄λ₯Ό 닀루긴 νž˜λ“€μ£ . κ·Έλž˜μ„œ μ „ 세계 λͺ¨λ“  문자λ₯Ό μˆ˜μš©ν•  수 μžˆλŠ” μ‚°μ—… ν‘œμ€€μ„ μ„€κ³„ν•œ 것이 λ°”λ‘œ μœ λ‹ˆμ½”λ“œμž…λ‹ˆλ‹€. 이 ν‘œμ€€μ—λŠ” 문자 μ§‘ν•©μ΄λ‚˜ 문자 인코딩 λ“± λ¬Έμžλ“€μ„ 닀루기 μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ 등을 ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μœ λ‹ˆ μ½”λ“œλŠ” μœ λ‹ˆν¬ν•œ μ½”λ“œλΌλŠ” 것을 쀄인 κ²ƒμœΌλ‘œ λͺ¨λ“  λ¬Έμžμ— νŠΉμ • 번호λ₯Ό λ§€κ²¨μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€. ν˜„μž¬λŠ” 문자.. 2022. 2. 24.
[Programming] λΉ„νŠΈμ™€ λ°”μ΄νŠΈκ°€ 뭘까? (bit & Byte) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€. μš”μ¦˜ 데이터 베이슀λ₯Ό κ³΅λΆ€ν•˜λŠ”λ° μžλ£Œν˜•μ„ λͺ…ν™•ν•˜κ²Œ μ•Œμ§€ λͺ»ν•΄ μ°Ύμ•„λ³΄λ˜ 와쀑에 CHARλŠ” UTF-8 문자 인코딩을 μ‚¬μš©ν•œλ‹€λŠ” 것을 μ•Œκ³  그럼 ...UTFλŠ” μ •ν™•νžˆ 뭐지...? 라고 μ°Ύμ•„λ³΄λ˜ 와쀑에 μ•„μŠ€ν‚€ μ½”λ“œλŠ” 8λ°”μ΄νŠΈλ₯Ό μ‚¬μš©ν•œλ‹€κ³  ν•΄μ„œ μ •ν™•νžˆ λ°”μ΄νŠΈλŠ” 뭐지...? 라고 μƒκ°ν•˜λ‹€κ°€... κ²°κ΅­ λΉ„νŠΈμ™€ λ°”μ΄νŠΈκΉŒμ§€ 였게 λ˜μ—ˆκ³  μ—΄μ‹¬νžˆ ꡬ글링 ν•΄μ„œ μ°Ύκ³  λͺ…ν™•νžˆ μ •λ¦¬ν•˜κΈ° μœ„ν•΄μ„œ 글을 μž‘μ„±ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ μ΄μ§„μˆ˜(Binary) bitλ₯Ό μ•ŒκΈ° μœ„ν•΄μ„  μ΄μ§„μˆ˜μ˜ κ°œλ…μ„ μ•Œμ•„μ•Ό ν•˜λŠ”λ°μš”. μ΄μ§„μˆ˜λŠ” 두 가지 숫자만 μ‚¬μš©ν•˜λŠ” μˆ˜μž…λ‹ˆλ‹€.(ꡬ체적으둠 0κ³Ό 1을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.) μ΄μ§„μˆ˜λŠ” 컴퓨터와 μ˜μ‚¬μ†Œν†΅ ν•  수 μžˆλŠ” μ–Έμ–΄μΈλ°μš”. κ·Έ μ΄μœ λŠ” μ»΄ν“¨ν„°μ—κ²Œ μ–΄λ– ν•œ 정보λ₯Ό 전달할 λ•Œ .. 2022. 2. 24.
[CS] BDD(Behavior-Driven-Development)λž€? μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μš”μ¦˜ μ§„ν–‰ν•˜κ³  μžˆλŠ” ν”„λ‘œμ νŠΈλ₯Ό ν…ŒμŠ€νŠΈ 주도 κ°œλ°œν•˜λ €κ³  ν•˜λ‹€κ°€ 쒋은 ν”„λ ˆμž„μ›Œν¬λ₯Ό 찾게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Quick/Nimble μ΄λΌλŠ” ν”„λ ˆμž„μ›Œν¬μ˜€λŠ”λ°μš”. μ—¬κΈ°μ„œ Quick은 BDD ν”„λ ˆμž„μ›Œν¬λΌκ³  μ†Œκ°œν•˜λ”λΌκ΅¬μš”. κ·Έλž˜μ„œ BDDκ°€ 뭐고 TDDμ™€λŠ” 무엇이 λ‹€λ₯Έμ§€ 정리해보렀고 ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ BDDλž€? TDDμ—μ„œ νŒŒμƒλœ 개발 λ°©λ²•λ‘ μœΌλ‘œ κ°œλ°œμžμ™€ λΉ„κ°œλ°œμžκ°„μ˜ ν˜‘μ—… 과정을 λ…Ήμ—¬λ‚Έ 방법이닀. μ‚¬μš©μžμ˜ ν–‰μœ„λ₯Ό μž‘μ„±ν•˜κ³  κ²°κ³Ό 검증을 μ§„ν–‰ν•˜λ©° BDD둜 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•¨μ— 따라 섀계 μ—­μ‹œ ν–‰μœ„μ˜ 쀑심이 λ˜λŠ” 도메인 기반 섀계가 λœλ‹€. 즉, μ‚¬μš©μžμ˜ ν–‰μœ„λ₯Ό 미리 μ˜ˆμƒν•˜κ³  κ²°κ³Όλ₯Ό ν…ŒμŠ€νŠΈ ν•΄λ³΄λŠ” 개발 λ°©λ²•μž…λ‹ˆλ‹€. BDD의 개발 절차 BDDλŠ” λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ—°κ΅¬ν•œ 끝에 μ •ν˜•ν™”λœ ν˜•μ‹μ΄ λ§Œλ“€μ–΄.. 2021. 8. 31.
[CS] μ˜μ‘΄μ„± μ£Όμž…(Dependency Injection)μ΄λž€? (feat. μ¨μ•Όν•˜λŠ” 이유) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ˜μ‘΄μ„± μ£Όμž…μ΄ 무엇이고 μ¨μ•Όν•˜λŠ” μ΄μœ μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. SOLIDμ›μΉ™μ˜ ν•˜λ‚˜μ΄κΈ°λ„ ν•˜κ³  졜근 RIBs μ•„ν‚€ν…μ²˜λ₯Ό κ³΅λΆ€ν•˜κ³  μžˆλŠ”λ° UIViewController도 직접 μ±„νƒν•˜μ§€ μ•Šκ³  ViewControllable둜 ν”„λ‘œν† μ½œμ„ λ§Œλ“€μ–΄μ„œ μ£Όμž…ν•˜λ”λΌκ΅¬μš”.. λ­”κ°€ μΆ”μƒμ μœΌλ‘œλŠ” μ•Œκ² λŠ”λ° ꡬ체적으둜 λͺ…ν™•ν•˜κ²Œ 이게 뭐고 이게 μ™œ ν•„μš”ν•œκ°€μ— λŒ€ν•΄μ„œ μ•Œμ§€ λͺ»ν•΄μ„œ 글을 μ •λ¦¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€! λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ μ˜μ‘΄μ„±μ„ κ°–λŠ”λ‹€λŠ” 것은 λ¬΄μ—‡μΌκΉŒ? πŸ€” λ§Œμ•½ 배터리가 μΌμ²΄ν˜•μΈ μžλ™μ°¨ μž₯λ‚œκ° πŸš— 이 μžˆλ‹€κ³  κ°€μ •ν• κ²Œμš”. 이 μžλ™μ°¨ μž₯λ‚œκ°μ€ 배터리가 λ‹€ λ‹³κ²Œ 되면 더 이상 μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 이 경우 μžλ™μ°¨ μž₯λ‚œκ°μ€ 배터리에 μ˜μ‘΄ν•˜κ³  μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€. μ½”λ“œλ‘œ μ„€λͺ…을 ν•˜λ©΄ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.. 2021. 8. 26.
[πŸ’» Programming] Clean Code - κΉ”λ”ν•œ 주석과 ν˜•μ‹μ€ μ–΄λ–»κ²Œ μ¨μ•Όν• κΉŒ? μ•ˆλ…•ν•˜μ„Έμš” FomaπŸ‘Ÿ μž…λ‹ˆλ‹€! ν‰μ†Œμ— μ½”λ“œλ₯Ό 가독성 있게 μž‘μ„±ν•  λ•Œ ν˜•μ‹μ„ μ–΄λ–»κ²Œ λ§žμΆ°μ•Ό 될까? 에 λŒ€ν•œ κ³ λ―Όκ³Ό 또 λ‹€λ₯Έ μ‚¬λžŒμ΄ λ³Ό λ•Œ μ• λ§€ν•œ μ½”λ“œλ₯Ό μ μ—ˆμ„ λ•Œ μ£Όμ„μœΌλ‘œ μ–΄λ–»κ²Œ μ„€λͺ…ν•΄μ•Ό ν• κΉŒ? 에 λŒ€ν•œ 고민을 ν–ˆμ—ˆλŠ”λ°μš”. 클린 μ½”λ“œμ—μ„œ 쒋은 주석과 λ‚˜μœ 주석, 가독성 있게 ν˜•μ‹μ„ λ§žμΆ”λŠ” 법에 λŒ€ν•΄μ„œ μ•Œκ²Œ λ˜μ–΄ μ •λ¦¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. (μ œκ°€ ν‰μ†Œμ— 많이 μ“°λ˜ λ‚˜μœ λ²„λ¦‡μ΄λ‚˜ μ€‘μš”ν•˜λ‹€κ³  μƒκ°λ“œλŠ” 것 μœ„μ£Όλ‘œ μ •λ¦¬ν•˜κ² μŠ΅λ‹ˆλ‹€.) λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ 주석 이 μ±…μ˜ μ €μžμΈ λ°₯ μ•„μ €μ”¨λŠ” 주석에 λŒ€ν•΄μ„œ μ΄λ ‡κ²Œ λ§ν•©λ‹ˆλ‹€. 주석은 기껏해야 ν•„μš”μ•…μ΄λ‹€. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 자체λ₯Ό μΉ˜λ°€ν•˜κ²Œ μ‚¬μš©ν•΄ μ˜λ„λ₯Ό ν‘œν˜„ν•  λŠ₯λ ₯이 μžˆλ‹€λ©΄ 주석은 거의 ν•„μš”ν•˜μ§€ μ•Šλ‹€. μ΄λ ‡κ²Œ 주석을 λ¬΄μ‹œν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΌκΉŒμš”? λ°”λ‘œ 주석은 였래되면 였래될수둝 그릇될 κ°€.. 2021. 8. 7.
[πŸ’» Programming] Clean Code - κΉ¨λ—ν•œ ν•¨μˆ˜λŠ” μ–΄λ–»κ²Œ μž‘μ„±ν• κΉŒ? μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! 항상 ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜λ©΄μ„œ "νŒŒλΌλ―Έν„°λŠ” λͺ‡ κ°œκ°€ μ λ‹Ήν• κΉŒ?", "μ–΄λŠμ •λ„ λ‹¨μœ„λ‘œ μ¨μ•Όν• κΉŒ?" λ“± ν•¨μˆ˜λ₯Ό μ μ ˆν•˜κΈ° μ“°κΈ° μœ„ν•΄μ„œ κ³ λ―Όν–ˆμ—ˆλŠ”λ°μš”. "클린 μ½”λ“œ" 책을 ν†΅ν•΄μ„œ κΉ”λ”ν•œ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜λŠ” 법에 λŒ€ν•΄ μ•Œκ²Œ λ˜μ–΄ 정리해보렀고 ν•©λ‹ˆλ‹€. 1. 더 μž‘κ²Œ κΉ”λ”ν•œ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„  이 μ±…μ˜ μ €μžμΈ λ§ˆν‹΄μ€ μ΅œλŒ€ν•œ μž‘κ²Œ 더 μž‘κ²Œ 쓰라고 κ°•μ‘°ν•©λ‹ˆλ‹€. (μ‹€μ œλ‘œ 읡슀트림 ν”„λ‘œκ·Έλž˜λ° 개발자인 "μΌ„νŠΈ λ°±"이 μž‘μ„±ν•œ ν•¨μˆ˜λŠ” 2μ€„μ—μ„œ 4μ€„λ‘œλ°–μ— 이루어져 μžˆμ§€ μ•Šλ‹€κ³  ν•˜λ„€μš”) "κ·Έλ ‡λ‹€λ©΄ μž‘κ²Œ μ“°λŠ” κ²ƒμ˜ 기쀀은 μ–΄λŠ μ •λ„μΌκΉŒμš”?" ν•¨μˆ˜ μ•ˆμ—μ„œ if/else/while문에 μ“°μ΄λŠ” 블둝은 ν•œ 쀄이 μ λ‹Ήν•˜κ³  λ“€μ—¬μ“°κΈ°λŠ” 1λ‹¨μ—μ„œ 2단을 λ„˜μ–΄μ„œλ©΄ μ•ˆλœλ‹€κ³  ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ μž‘κ²Œ ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ•Ό 더 μ΄ν•΄ν•˜κΈ° 쉽.. 2021. 8. 4.
[πŸ’» Programming] Clean Code - μ˜λ―ΈμžˆλŠ” 이름을 써라 μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ €λ²ˆ κΈ€μ—” κΉ¨λ—ν•œ μ½”λ“œκ°€ 무엇인지에 λŒ€ν•΄ λ‹€λ€„λ³΄μ•˜λŠ”λ°μš”. μ΄λ²ˆμ—” μ’€ 더 ꡬ체적으둜 κΉ¨λ—ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•œ 첫번째 κ·œμΉ™ "μ˜λ―ΈμžˆλŠ” 이름" 에 λŒ€ν•΄μ„œ 정리해보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. μ˜λ„λ₯Ό λΆ„λͺ…νžˆ λ°ν˜€λΌ λ‚˜μœ 예 ❌ λ§Œμ•½ μ•„λž˜μ™€ 같은 ν•¨μˆ˜κ°€ μžˆλ‹€λ©΄ 뭘 μ˜λ―Έν•˜λŠ”μ§€ μ•Œ μˆ˜κ°€ μ—†λ‹€. func abc(a:String,b:String) -> String { return a+b } 쒋은 예 πŸ‘πŸ» μœ„μ™€ 같은 역할을 ν•¨μˆ˜μ΄μ§€λ§Œ μ•„λž˜μ²˜λŸΌ μž‘μ„±ν•˜λ©΄ ν™•μ‹€νžˆ μ„±κ³Ό 이름을 λ°›μ•„μ„œ ν’€λ„€μž„μ„ λ§Œλ“œλŠ” κ²ƒμ΄κ΅¬λ‚˜ 라고 μ•Œ 수 μžˆλ‹€. func makeFullName(firstName:String,lastName:String) -> String { let fullName = firstName + lastName .. 2021. 6. 13.
[πŸ’» Programming] Clean Code - κΉ¨λ—ν•œ μ½”λ“œλž€? (feat.μ¨μ•Όν•˜λŠ” 이유) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜λΆ€ν„° ν”„λ‘œκ·Έλž˜λ¨ΈλΌλ©΄ κΌ­ 읽어봐야 ν•˜λŠ” "클린 μ½”λ“œ" 책에 λŒ€ν•΄μ„œ 배운 λ‚΄μš©μ„ μ΄ν•΄ν•œλŒ€λ‘œ 정리해보렀고 ν•©λ‹ˆλ‹€. λ‚˜μœ μ½”λ“œλž€? ν•΄λ…ν•˜κΈ° μ–΄λ €μš΄ μ½”λ“œ 생산성을 λ–¨μ–΄λœ¨λ¦¬λŠ” μ½”λ“œ 일정 κΈ°ν•œμ— κΈ‰ν•˜κ²Œ μ§  μ½”λ“œ 즉, ν•œλ§ˆλ””λ‘œ κΈ‰ν•˜κ²Œ λŒ€μΆ© μ§œμ„œ μ½”λ“œκ°€ 읽기 μ–΄λ €μ›Œμ§€κ³  κ·ΈλŸ¬λ‹€κ°€ 점점 개발 속도가 λŠ˜μ–΄κ°€λŠ” μ½”λ“œκ°€ λ‚˜μœ μ½”λ“œμž…λ‹ˆλ‹€. "μ•„λ‹ˆ 그러면 일정 κΈ°ν•œμ„ λΉ‘λΉ‘ν•˜κ²Œ μž‘μ€ κ΄€λ¦¬μž 잘λͺ» μ•„λ‹ˆμ•Ό?" 라고 μ§ˆλ¬Έν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 μ±…μ—μ„œλŠ” μ˜μ‚¬λΌλŠ” μ§μ—…μœΌλ‘œ λΉ„μœ λ₯Ό ν•˜λŠ”λ°μš”. λ§Œμ•½ 당신이 μ˜μ‚¬μΈ μƒν™©μ—μ„œ κ΄€λ¦¬μžκ°€ μ‹œκ°„ 내에 μˆ˜μˆ μ„ 마치기 μœ„ν•΄μ„œ 손을 μ”»λŠ” 것을 μƒλž΅ν•˜λΌκ³  μš”κ΅¬ν•©λ‹ˆλ‹€. 이 λ•Œ λ§Œμ•½ ν™˜μžμ—κ²Œ 무슨 일이 생겼닀면 λˆ„κ΅¬μ˜ 잘λͺ»μ΄ ν΄κΉŒμš”? λ‹Ήμ—°νžˆ μˆ˜μˆ μ„ 맑은 μ˜μ‚¬μ˜ 잘λͺ»μ΄ ν΄κ²λ‹ˆ.. 2021. 6. 13.
[CS] TDD(Test-Driven-Development)λž€? μ•ˆλ…•ν•˜μ„Έμš” FomaπŸ‘Ÿ μž…λ‹ˆλ‹€! 였늘 μ•Œμ•„λ³Ό μ£Όμ œλŠ” 개발자라면 무쑰건 κ°–μΆ°μ•Ό ν•˜λŠ” μžμ„ΈμΈ TDD에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 정말 μ€‘μš”ν•œ κ°œλ…μΈλ° μ΄μ œμ„œμ•Ό λ‹€λ£¨κ²Œ λ˜λ‹€λ‹ˆ... λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! TDD(ν…ŒμŠ€νŠΈ 주도 개발)λž€? πŸ€” "ν…ŒμŠ€νŠΈ 주도 κ°œλ°œμ€ 맀우 짧은 개발 사이클을 λ°˜λ³΅ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€ 쀑 ν•˜λ‚˜μ΄λ‹€. κ°œλ°œμžλŠ” λ¨Όμ € μš”κ΅¬μ‚¬ν•­μ„ κ²€μ¦ν•˜λŠ” μžλ™ν™”λœ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μž‘μ„±ν•œλ‹€. 그런 후에, κ·Έ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό ν†΅κ³Όν•˜κΈ° μœ„ν•œ μ΅œμ†Œν•œμ˜ μ½”λ“œλ₯Ό μƒμ„±ν•œλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ μž‘μ„±ν•œ μ½”λ“œλ₯Ό ν‘œμ€€μ— λ§žλ„λ‘ λ¦¬νŒ©ν† λ§ν•œλ‹€. 이 기법을 κ°œλ°œν–ˆκ±°λ‚˜ '재발견' ν•œ κ²ƒμœΌλ‘œ μΈμ •λ˜λŠ” Kent Beck은 2003년에 TDDκ°€ λ‹¨μˆœν•œ 섀계λ₯Ό μž₯λ €ν•˜κ³  μžμ‹ κ°μ„ λΆˆμ–΄λ„£μ–΄μ€€λ‹€κ³  λ§ν•˜μ˜€λ‹€." - μœ„ν‚€ λ°±κ³Ό - κ°„λ‹¨ν•˜κ²Œ λ§ν•˜λ©΄ μ½”λ“œλ₯Ό μ“°κΈ° .. 2021. 6. 7.
[CS] F.I.R.S.T μ›μΉ™μ΄λž€? (feat.UnitTest) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! 였늘 μ•Œμ•„λ³Ό μ£Όμ œλŠ” 쒋은 μœ λ‹› ν…ŒμŠ€νŠΈλ₯Ό ν•˜κΈ° μœ„ν•œ F.I.R.S.T 원칙에 λŒ€ν•΄ 정리해보렀고 ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ F.I.R.S.T μ›μΉ™μ΄λž€? First 원칙은 '클린 μ½”λ“œ' λΌλŠ” μ•„μ£Ό 유λͺ…ν•œ μ±…μ˜ μ €μžμΈ Bob Martin이 처음 μ œμ‹œν•œ κ·œμΉ™μž…λ‹ˆλ‹€. 이 κ·œμΉ™μ€ 효율적이고 쒋은 λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό ν•˜κΈ° μœ„ν•œ 5가지 μš”μ†Œλ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. λΉ λ₯΄κ³ (Fast),독립적이고(Independent),λ°˜λ³΅κ°€λŠ₯ν•˜λ©°(Repeatable),자체 검증가λŠ₯ν•˜κ³ (Self-validating),μ² μ €ν•˜κ³  μ μ‹œμ—(Thorough&Timely) μž‘μ„± κ°€λŠ₯ν•œ ν…ŒμŠ€νŠΈλ₯Ό First 원칙을 μ€€μˆ˜ν•œ μœ λ‹›ν…ŒμŠ€νŠΈλΌκ³  ν•©λ‹ˆλ‹€. 이 5가지 원칙에 λŒ€ν•΄μ„œ μ„Έμ„Έν•˜κ²Œ 닀루도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. Fast μœ λ‹› ν…ŒμŠ€νŠΈλŠ” λΉ λ₯΄κ²Œ .. 2021. 6. 7.
[CS] 일급 κ°μ²΄λž€? μ•ˆλ…•ν•˜μ„Έμš” Foma μž…λ‹ˆλ‹€! ν΄λ‘œμ Έμ— λŒ€ν•΄μ„œ μ •ν™•νžˆ κ³΅λΆ€ν•˜λ €κ³  μ•Œμ•„λ³΄λ˜ 와쀑에 "ν΄λ‘œμ ΈλŠ” 일급객체이닀" λΌλŠ” λ§μ—μ„œ 일급객체에 λŒ€ν•΄μ„œ λͺ…ν™•ν•˜κ²Œ μ„€λͺ…ν•  μˆ˜κ°€ μ—†μ–΄μ„œ ꡬ체적으둜 μ•Œμ•„λ³΄κ³  μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! First-Class-Object(일급 객체) 일급 κ°μ²΄λž€ λ¬΄μ—‡μΌκΉŒ?🧐 μœ„ν‚€λ°±κ³Όμ—λŠ” λ‹€μŒκ³Ό 같이 μ •μ˜λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. "일급 κ°μ²΄λž€ λ‹€λ₯Έ 객체듀에 일반적으둜 적용 κ°€λŠ₯ν•œ 연산을 λͺ¨λ‘ μ§€μ›ν•˜λŠ” 객체λ₯Ό 가리킨닀. 보톡 ν•¨μˆ˜μ— λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κΈ°κΈ°, μˆ˜μ •ν•˜κΈ°, λ³€μˆ˜μ— λŒ€μž…ν•˜κΈ°μ™€ 같은 연산을 지원할 λ•Œ 일급 객체라고 ν•œλ‹€." 즉, ν•¨μˆ˜λ₯Ό κ°’μœΌλ‘œλ„ μ €μž₯ν•  수 있고 νŒŒλΌλ―Έν„°λ‘œ 넣어쀄 μˆ˜λ„ 있고 λ¦¬ν„΄κ°’μœΌλ‘œλ„ 쓰일 μˆ˜κ°€ μžˆλŠ” 것이 일급 κ°μ²΄μž…λ‹ˆλ‹€. 1960λ…„λŒ€, 영ꡭ의 컴퓨터 κ³Όν•™μž ν¬λ¦¬μŠ€ν† νΌ μŠ€νŠΈλž˜μΉ˜κ°€ 처음 .. 2021. 5. 12.
[Programming] SOLID μ›μΉ™μ΄λž€? (feat.iOS 개발자) μ•ˆλ…•ν•˜μ„Έμš” Foma μž…λ‹ˆλ‹€! 였늘 닀뀄볼 μ£Όμ œλŠ” 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° (OOP) μ—μ„œ κΌ­ μ§€μΌœμ•Ό ν•˜λŠ” 원칙인 SOLID μž…λ‹ˆλ‹€. SOLIDλ₯Ό μ•Œμ•„λ³΄λŠ” μ΄μœ λŠ” Swift둜 κ°œλ°œμ„ ν•˜λ©΄μ„œ ν΄λž˜μŠ€λ‚˜ 객체λ₯Ό λ§Œλ“œλŠ” 것, μΊ‘μŠν™”, λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”© λ“± λ§Žμ€ OOP κ°œλ…μ„ μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ°œλ°œμ„ ν•˜λ‹€λ³΄λ©΄ μ–΄λ–€ 것이 νš¨μœ¨μ μΈμ§€ μ–΄λ–€ 것이 μ˜¬λ°”λ₯΄κ²Œ OOPλ₯Ό μ§€ν‚€λ©΄μ„œ μ‚¬μš©ν•˜λŠ” κ²ƒμΈμ§€λŠ” μ•Œμ§€ λͺ»ν•œμ±„ κ·Έλƒ₯ μ½”λ”©λ§Œ ν–ˆμ—ˆμ£ ... κ·ΈλŸ¬λ‹€κ°€ μš°μ—°νžˆ "OOPμ—μ„œ λ°˜λ“œμ‹œ μ§€μΌœμ•Ό ν•˜λŠ” 원칙이 5가지가 μžˆλŠ”λ° 그것이 SOLID 원칙이라 λΆˆλ¦°λ‹€." λΌλŠ” 것을 λ“£κ³  이게 무엇인지 그리고 μ™œ μ§€μΌœμ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œ 정리해보렀고 ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ ν• κ²Œμš”~ SOLID 원칙은 λ¬΄μ—‡μΌκΉŒμš”?🧐 컴퓨터 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ SOLIDλž€ λ‘œλ²„νŠΈ λ§ˆν‹΄μ΄ .. 2021. 3. 4.
728x90
λ°˜μ‘ν˜•