λ³Όλ“œμ²΄μ˜ κ°œλ…μ€ 기좜 λ¬Έμ œμ—μ„œ λ“±μž₯, λ‚˜λ¨Έμ§€ κ°œλ…μ€ λͺ¨μ˜κ³ μ‚¬μ—μ„œ λ“±μž₯ SW 곡학 κ΄€λ ¨ κ°œλ… SOLID 원칙 S : 단일 μ±…μž„ 원칙 (SRP) O : 개방 폐쇄 원칙 (OCP) : ν™•μž₯μ—λŠ” μ—΄λ € μžˆμ–΄μ•Ό ν•˜κ³ , μˆ˜μ •μ—λŠ” λ‹«ν˜€ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 원칙 L : λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙 (LSP) : μ„œλΈŒνƒ€μž…μ€ μ–Έμ œλ‚˜ μžμ‹ μ˜ 기반 νƒ€μž…μœΌλ‘œ ꡐ체할 수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 원칙 I : μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙 (ISP) D : 의쑴 μ—­μ „ 원칙 (DIP) : 좔상화에 μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€λŠ” 원칙 SOA(Service-Oriented Architecture) : μ„œλΉ„μŠ€ μ§€ν–₯ μ•„ν‚€ν…μ²˜ Walk Through : κ²€ν†  자료λ₯Ό 회의 전에 λ°°ν¬ν•΄μ„œ μ‚¬μ „κ²€ν† ν•œ ν›„ 짧은 μ‹œκ°„ λ™μ•ˆ 회의λ₯Ό μ§„ν–‰ν•˜λŠ” ν˜•νƒœλ‘œ 리뷰λ₯Ό 톡해 였λ₯˜λ₯Ό κ²€μΆœν•˜κ³  λ¬Έμ„œλ‘œ λ§Œλ“œλŠ” 기법 μ •ν˜• λͺ…μ„Έ 기법 : μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό ν‘œν˜„ν•  λ•Œ μˆ˜ν•™μ  원리와 ν‘œκΈ°λ²•μœΌλ‘œ μ„œμˆ ν•˜λŠ” 기법 λ””μžμΈ νŒ¨ν„΄ Abstract Factory Pattern : 생성 νŒ¨ν„΄; 객체 생성에 λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜κ³ , ꡬ체적인 ν΄λž˜μŠ€λŠ” μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•˜λŠ” νŒ¨ν„΄ Decorator Pattern : ꡬ쑰 νŒ¨ν„΄; 객체에 좔가적인 μ±…μž„μ„ λ™μ μœΌλ‘œ λΆ€μ—¬ν•˜λŠ” νŒ¨ν„΄ Memento Pattern : ν–‰μœ„ νŒ¨ν„΄; 객체의 μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  λ³΅μ›ν•˜λŠ” νŒ¨ν„΄ Factory Method Pattern : 생성 νŒ¨ν„΄; 객체 생성에 λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜κ³ , ꡬ체적인 ν΄λž˜μŠ€λŠ” μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ •μ˜ν•˜λŠ” νŒ¨ν„΄ Bridge Pattern : ꡬ쑰 νŒ¨ν„΄; 좔상화와 κ΅¬ν˜„μ„ λΆ„λ¦¬ν•˜μ—¬ λ…λ¦½μ μœΌλ‘œ ν™•μž₯ν•  수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄ Observer Pattern : ν–‰μœ„ νŒ¨ν„΄; 객체의 μƒνƒœ 변화에 따라 λ‹€λ₯Έ 객체에 μ•Œλ¦Όμ„ λ³΄λ‚΄λŠ” νŒ¨ν„΄ Proxy Pattern : ꡬ쑰 νŒ¨ν„΄; λ‹€λ₯Έ 객체에 λŒ€ν•œ 접근을 μ œμ–΄ν•˜λŠ” λŒ€λ¦¬ 객체λ₯Ό μ œκ³΅ν•˜λŠ” νŒ¨ν„΄ Iterator Pattern : ν–‰μœ„ νŒ¨ν„΄; μ»¬λ ‰μ…˜ 객체의 λ‚΄λΆ€ ꡬ쑰λ₯Ό λ…ΈμΆœν•˜μ§€ μ•Šκ³  순차적으둜 μ ‘κ·Όν•  수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄ 이상 ν˜„μƒ : 데이터λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν• λ•Œ λΆˆν•„μš”ν•˜κ²Œ μ€‘λ³΅λ˜μ–΄ λ¦΄λ ˆμ΄μ…˜ μ‘°μž‘μ‹œ 예기치 λͺ»ν•œ κ³€λž€ν•œ ν˜„μƒμΌ λ°œμƒν•˜λŠ” ν˜„μƒ λ²ˆλ‹€μš΄ 차트 : 남은 μž‘μ—…λŸ‰μ„ μ‹œκ°„μ— 따라 ν‘œμ‹œν•˜μ—¬ μ§„ν–‰ 상황을 μ‹œκ°μ μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 차트 COCOMO : 보헴이 μ œμ•ˆν•œ ν”„λ‘œκ·Έλž¨ 규λͺ¨μ— 따라 λΉ„μš©μ„ μ‚°μ •ν•˜λŠ” 방식 (μ‘°μ§ν˜•, λΆ„λ¦¬ν˜•, μž„λ² λ””λ“œν˜•) CPM : ν”„λ‘œμ νŠΈμ˜ μž‘μ—…μ„ λ„€νŠΈμ›Œν¬ ν˜•νƒœλ‘œ ν‘œν˜„ν•˜μ—¬ 전체 ν”„λ‘œμ νŠΈμ˜ 일정을 κ³„μ‚°ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜ PERT : λΉ„κ΄€μΉ˜, μ€‘κ΄€μΉ˜, λ‚™κ΄€μΉ˜μ˜ 3점 μΆ”μ • 방식을 톡해 일정을 κ΄€λ¦¬ν•˜λŠ” 기법 결함 집쀑 : 20%의 λͺ¨λ“ˆμ—μ„œ 80%의 결함이 λ°œμƒν•œλ‹€λŠ” 원리 μ‚΄μΆ©μ œ νŒ¨λŸ¬λ…μŠ€ : λ™μΌν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό 반볡적으둜 μ‹€ν–‰ν•˜λ©΄ μƒˆλ‘œμš΄ 결함을 λ°œκ²¬ν•˜μ§€ λͺ»ν•œλ‹€λŠ” 원리 배치 λ‹€μ΄μ–΄κ·Έλž¨ : μ‹œμŠ€ν…œμ˜ 물리적인 ꡬ쑰λ₯Ό λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨, μ–΄λ–€ SWκ°€ μ–΄λ–€ HW에 λ°°μΉ˜λ˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λƒ„ νŒ¨ν‚€μ§€ λ‹€μ΄μ–΄κ·Έλž¨ : μ‹œμŠ€ν…œμ˜ νŒ¨ν‚€μ§€ ꡬ쑰λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ‹€μ΄μ–΄κ·Έλž¨ 브룩슀의 법칙 : “λŠ¦μ–΄μ§„ ν”„λ‘œμ νŠΈμ— 인λ ₯을 μΆ”κ°€ν•˜λ©΄ 였히렀 더 λŠ¦μ–΄μ§„λ‹€"λŠ” 법칙 ν™”μ΄νŠΈλ°•μŠ€ ν…ŒμŠ€νŠΈ 검증 κΈ°μ€€ λ¬Έμž₯(Statement) 컀버리지 : ν”„λ‘œκ·Έλž¨μ˜ λͺ¨λ“  λ¬Έμž₯이 μ΅œμ†Œν•œ ν•œ λ²ˆμ€ μ‹€ν–‰λ˜λ„λ‘ ν•˜λŠ” κΈ°μ€€ λΆ„κΈ°(Branch) 컀버리지 : 각 결정문이 μ°Έ, 거짓을 ν•œ 이상 갖도둝 μ‘°ν•©ν•˜λŠ” 컀버리지 쑰건(Condition) 컀버리지 : κ²°μ •λ¬Έ λ‚΄μ˜ 각 쑰건이 μ°Έ, 거짓을 ν•œ 이상 갖도둝 μ‘°ν•©ν•˜λŠ” 컀버리지 κ²°μ •(Decision) 컀버리지 : 각 전체 μ‘°κ±΄μ‹μ˜ μ°Έ, 거짓을 ν•œ 이상 갖도둝 μ‘°ν•©ν•˜λŠ” 컀버리지 원인 κ²°κ³Ό κ·Έλž˜ν”„ : ν”„λ‘œκ·Έλž¨μ˜ μž…λ ₯κ³Ό 좜λ ₯ κ°„μ˜ 관계λ₯Ό κ·Έλž˜ν”„λ‘œ λ‚˜νƒ€λ‚΄μ–΄ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό λ„μΆœν•˜λŠ” 기법 μ•ŒνŒŒ/베타 ν…ŒμŠ€νŠΈ : μ•ŒνŒŒ-κ°œλ°œμžμ™€ ν•¨κ»˜ μˆ˜ν–‰, 베타-개발자 없이 μˆ˜ν–‰ λ„€νŠΈμ›Œν¬ κ΄€λ ¨ κ°œλ… Hub & Spoke : EAI ꡬ좕 μœ ν˜•; λ‹¨μΌν•œ μ ‘μ μ˜ ν—ˆλΈŒ μ‹œμŠ€ν…œμ„ ν†΅ν•˜μ—¬ 데이터λ₯Ό μ „μ†‘ν•˜λŠ” 쀑앙 집쀑식 방식 MQTT : IoT μž₯치 κ°„ 톡신에 μ‚¬μš©λ˜λŠ” κ²½λŸ‰ λ©”μ‹œμ§• ν”„λ‘œν† μ½œ CoAP : M2M λ…Έλ“œλ“€ μ‚¬μ΄μ—μ„œ μ΄λ²€νŠΈμ— λŒ€ν•œ μ†‘μˆ˜μ‹ μ„ λΉ„λ™κΈ°μ μœΌλ‘œ μ „μ†‘ν•˜λŠ” REST 기반의 ν”„λ‘œν† μ½œ 거리 벑터 μ•Œκ³ λ¦¬μ¦˜ : λ„€νŠΈμ›Œν¬ λΌμš°νŒ… ν”„λ‘œν† μ½œμ˜ ν•œ μ’…λ₯˜; 각 λ…Έλ“œκ°€ μžμ‹ μ˜ 거리와 이웃 λ…Έλ“œμ˜ 거리 정보λ₯Ό κ΅ν™˜ν•˜μ—¬ 졜적 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜ 링크 μƒνƒœ μ•Œκ³ λ¦¬μ¦˜ : λ„€νŠΈμ›Œν¬ λΌμš°νŒ… ν”„λ‘œν† μ½œμ˜ ν•œ μ’…λ₯˜; 각 λ…Έλ“œκ°€ 전체 λ„€νŠΈμ›Œν¬μ˜ μƒνƒœ 정보λ₯Ό μˆ˜μ§‘ν•˜μ—¬ 졜적 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜ νšŒμ„  μ œμ–΄ : 두 개의 μŠ€ν…Œμ΄μ…˜μ΄ λ™μ‹œμ— μ‹ ν˜Έλ₯Ό μ „μ†‘ν•˜λŠ” 경우 좩돌이 λ°œμƒν•˜μ§€ μ•Šλ„λ‘ μ œμ–΄ν•˜λŠ” 기술 Slowris : λ‹€λŸ‰μ˜ HTTP 연결을 λ™μ‹œμ— μ—΄κ³  μœ μ§€ν•˜λŠ” DoS RUDY : 느린 μ†λ„λ‘œ 양식 데이터λ₯Ό μ œμΆœν•˜μ—¬ μ—°κ²° μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•˜λŠ” DoS Slow Http read Dos : HTTP μš”μ²­ νŒ¨ν‚·μ˜ 헀더λ₯Ό λ³€μ‘°ν•˜μ—¬ μ›Ή μ„œλ²„μ— 보내 μ—°κ²° μƒνƒœλ₯Ό μœ μ§€ν•˜κ²Œ ν•˜λŠ” DoS SNMP(Simplified Network Management Protocol) : λ„€νŠΈμ›Œν¬ μž₯λΉ„μ˜ μƒνƒœλ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œ DHCP(Dynamic Host Configuration Protocol) : λ„€νŠΈμ›Œν¬ μž₯μΉ˜μ— IP μ£Όμ†Œλ₯Ό μžλ™μœΌλ‘œ ν• λ‹Ήν•˜λŠ” ν”„λ‘œν† μ½œ RARP (Reverse Address Resolution Protocol) : MAC μ£Όμ†Œ -> IP μ£Όμ†Œ λ³€ν™˜ ν”„λ‘œν† μ½œ Ad-hoc λ„€νŠΈμ›Œν¬ : 쀑앙 λΌμš°ν„°λ‚˜ μ•‘μ„ΈμŠ€ 지점 없이 μ„œλ‘œ 직접 톡신할 수 μžˆλ„λ‘ ν•˜λŠ” μž„μ‹œ λΆ„μ‚° 무선 λ„€νŠΈμ›Œν¬ νŒ¨ν‚· κ΅ν™˜ 방식 κ°€μƒνšŒμ„  방식 : λͺ©μ μ§€ ν˜ΈμŠ€νŠΈμ™€ 미리 μ—°κ²° ν›„ ν†΅μ‹ ν•˜λŠ” μ—°κ²°ν˜• κ΅ν™˜ 방식 λ°μ΄ν„°κ·Έλž¨ 방식 : 헀더λ₯Ό λΆ™μ—¬μ„œ κ°œλ³„μ μœΌλ‘œ μ „λ‹¬ν•˜λŠ” λΉ„μ—°κ²°ν˜• κ΅ν™˜ 방식 L2TP (Layer 2 Tunneling Protocol) : VPN ν”„λ‘œν† μ½œμ˜ μΌμ’…μœΌλ‘œ, PPP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μΊ‘μŠν™”ν•˜κ³  μ „μ†‘ν•˜λŠ” 방식 였λ₯˜ μ œμ–΄ 방식 FEC (Forward Error Correction) : 였λ₯˜ κ²€μΆœ, 슀슀둜 μˆ˜μ •ν•˜λŠ” 방식 Hamming Code BEC (Backward Error Correction) : 였λ₯˜ κ²€μΆœ, μž¬μ „μ†‘ μš”μ²­ν•˜λŠ” 방식 Parity 검사 CRC (Cyclic Redundancy Check) : 데이터 블둝에 λŒ€ν•œ 닀항식 λ‚˜λˆ—μ…ˆμ„ μ‚¬μš©ν•˜μ—¬ μƒμ„±λœ 체크섬을 이용 λ³΄μ•ˆ κ΄€λ ¨ κ°œλ… kill switch : 슀마트폰 μ΄μš©μžκ°€ λ„λ‚œλ‹Ήν•œ 슀마트폰의 μž‘λ™μ„, μ›Ήμ‚¬μ΄νŠΈλ₯Ό 톡해 μ •μ§€ν•  수 μžˆλ„λ‘ ν•˜λŠ” μΌμ’…μ˜ 자폭 κΈ°λŠ₯ 제둜 데이 곡격 : λ³΄μ•ˆ 취약점이 μ•Œλ €μ§€κΈ° 전에 ν•΄λ‹Ή 취약점을 μ•…μš©ν•˜μ—¬ μ΄λ£¨μ–΄μ§€λŠ” 곡격 ARP Spoofing : ARP ν”„λ‘œν† μ½œμ„ μ΄μš©ν•˜μ—¬ λ„€νŠΈμ›Œν¬ μƒμ˜ λ‹€λ₯Έ 호슀트의 MAC μ£Όμ†Œλ₯Ό μœ„μ‘°ν•˜λŠ” 곡격 기법 λ””μ§€ν„Έ ν¬λ Œμ‹ : λ””μ§€ν„Έ κΈ°κΈ°μ—μ„œ λ°œμƒν•œ λ²”μ£„λ‚˜ μ‚¬κ³ μ˜ 증거λ₯Ό μˆ˜μ§‘, 뢄석, λ³΄μ‘΄ν•˜λŠ” κ³Όμ • λ£¨νŠΈν‚· : μ‹œμŠ€ν…œμ— λͺ°λž˜ μ„€μΉ˜λ˜μ–΄ μ‚¬μš©μžμ˜ κΆŒν•œμ„ νƒˆμ·¨ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ„ μ œμ–΄ν•˜λŠ” μ•…μ„± μ†Œν”„νŠΈμ›¨μ–΄ μŠ€ν”Όμ–΄ ν”Όμ‹± : νŠΉμ • κ°œμΈμ΄λ‚˜ 쑰직을 λŒ€μƒμœΌλ‘œ ν•˜λŠ” λ§žμΆ€ν˜• ν”Όμ‹± 곡격 APT 곡격 : νŠΉμ • 타깃을 λͺ©ν‘œλ‘œ λ‹€μ–‘ν•œ μˆ˜λ‹¨μ„ ν†΅ν•œ 지속적이고 μ§€λŠ₯적인 맞좀혐 곡격 기법 SET(Secure Electronic Transaction) : μ „μž μƒκ±°λž˜μ—μ„œ μ•ˆμ „ν•œ 결제λ₯Ό μœ„ν•œ ν”„λ‘œν† μ½œ 사이버 킬체인 : λ‘νžˆλ“œ λ§ˆν‹΄μ˜ κ³΅κ²©ν˜• λ°©μœ„ μ‹œμŠ€ν…œ DAC (Discretionary Access Control) : μ‚¬μš©μžκ°€ 자유둭게 객체에 λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ 관리할 수 μžˆλŠ” 방식 MAC (Mandatory Access Control) : μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ 정책에 따라 μ‚¬μš©μžμ—κ²Œ μ ‘κ·Ό κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” 방식 3A (AAA) : 정보 λ³΄μ•ˆμ˜ ν•΅μ‹¬μš”μ†Œ Authentication Authorization Accounting ISMS (Information Security Management System) : 정보 보호λ₯Ό μœ„ν•œ 관리 체계 μ‚¬νšŒκ³΅ν•™ 기법 : μΈκ°„μ˜ 심리와 행동양식을 μ΄μš©ν•˜μ—¬ 정보λ₯Ό νƒˆμ·¨ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ— μΉ¨μž…ν•˜λŠ” 기법 SIEM : λ³΄μ•ˆ 정보 및 이벀트 관리 μ‹œμŠ€ν…œ; λ³΄μ•ˆ λ‘œκ·Έμ™€ 이벀트λ₯Ό μˆ˜μ§‘, λΆ„μ„ν•˜μ—¬ μ‹€μ‹œκ°„μœΌλ‘œ λ³΄μ•ˆ μœ„ν˜‘μ„ νƒμ§€ν•˜κ³  λŒ€μ‘ν•˜λŠ” μ‹œμŠ€ν…œ μ›œ VS λ°”μ΄λŸ¬μŠ€ μ›œ : 슀슀둜 λ³΅μ œν•˜μ—¬ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ „νŒŒλ˜λŠ” μ•…μ„± μ½”λ“œ; 호슀트 νŒŒμΌμ„ κ°μ—Όμ‹œν‚€μ§€ μ•ŠμŒ λ°”μ΄λŸ¬μŠ€ : 호슀트 νŒŒμΌμ— μ‚½μž…λ˜μ–΄ 싀행될 λ•Œλ§Œ ν™œμ„±ν™”λ˜λŠ” μ•…μ„± μ½”λ“œ; 호슀트 νŒŒμΌμ„ κ°μ—Όμ‹œν‚΄ λŒ€μΉ­ν‚€, λΉ„λŒ€μΉ­ν‚€(κ³΅κ°œν‚€) λŒ€μΉ­ν‚€ : AES, DES, ARIA SEED λΉ„λŒ€μΉ­ν‚€ : RSA, ECC ATM(Asynchronous Transfer Mode) : 고속 데이터 전솑을 μœ„ν•œ μ…€ 기반의 νŒ¨ν‚· κ΅ν™˜ 방식; 53λ°”μ΄νŠΈμ˜ κ³ μ • 길이 셀을 μ‚¬μš© μŠ€λ¨Έν•‘(Smurfing) : ICMP νŒ¨ν‚·μ„ μ΄μš©ν•˜μ—¬ λŒ€λŸ‰μ˜ νŠΈλž˜ν”½μ„ λ°œμƒμ‹œν‚€λŠ” DoS 곡격 기법; κ³΅κ²©μžκ°€ λΈŒλ‘œλ“œμΊμŠ€νŠΈ μ£Όμ†Œλ‘œ ICMP Echo μš”μ²­μ„ 보내고, 응닡을 νƒ€κ²Ÿμ—κ²Œ μ „μ†‘ν•˜κ²Œ 함 λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ ¨ κ°œλ… 낙관적 검증 : νŠΈλžœμž­μ…˜μ„ 일단 μˆ˜ν–‰ν•˜κ³ , νŠΈλžœμž­μ…˜ μ’…λ£Œ μ‹œ 검증을 μˆ˜ν–‰ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ λ°˜μ˜ν•˜λŠ” 기법 2PC (Two-Phase Commit) : λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—μ„œ νŠΈλžœμž­μ…˜μ˜ μ›μžμ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ 두 λ‹¨κ³„λ‘œ 컀밋을 μˆ˜ν–‰ν•˜λŠ” 방식 μ™„μ „ ν•¨μˆ˜ 쒅속(Full) : λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨λ“  속성이 κΈ°λ³Έν‚€μ—λ§Œ μ’…μ†λ˜λŠ” μƒνƒœ λΆ€λΆ„ ν•¨μˆ˜ 쒅속(Partial) : λ¦΄λ ˆμ΄μ…˜μ˜ 일뢀 속성이 κΈ°λ³Έν‚€μ—λ§Œ μ’…μ†λ˜λŠ” μƒνƒœ 이행 ν•¨μˆ˜ 쒅속(Transient) : A->B, B->C 이면 A->Cκ°€ μ„±λ¦½ν•˜λŠ” μƒνƒœ 체크포인트 회볡 기법 : μž₯μ•  λ°œμƒ μ‹œ 검사점 이후에 처리된 νŠΈλžœμž­μ…˜μ— λŒ€ν•΄μ„œλ§Œ μž₯μ• λ₯Ό λ³΅κ΅¬ν•˜λŠ” 기법 λ‘œν‚Ή : 닀쀑 νŠΈλžœμž­μ…˜ ν™˜κ²½μ—μ„œ 트랜 μž­μ…˜μ˜ 순차적 진행을 보μž₯ν•˜λŠ” 직렬화 기법 LIKE 문법 % : 0개 μ΄μƒμ˜ λ¬Έμžμ—΄κ³Ό 일치 [ ] : 1개의 λ¬Έμžμ™€ 일치 [^ ] : 1개의 λ¬Έμžμ™€ 뢈일치 _ : νŠΉμ • μœ„μΉ˜μ˜ 1개 λ¬Έμžμ™€ 일치 관계 해석 : λΉ„μ ˆμ°¨μ  μ–Έμ–΄; 관계 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ§ˆμ˜ν•˜κΈ° μœ„ν•œ μˆ˜ν•™μ  ν‘œν˜„ 방법 ALL : 주둜 μ„œλΈŒμΏΌλ¦¬μ—μ„œ μ‚¬μš©ν•˜λŠ” 닀쀑행 μ—°μ‚°μž; λͺ¨λ“  행이 쑰건을 λ§Œμ‘±ν•΄μ•Ό 함 ANY : 주둜 μ„œλΈŒμΏΌλ¦¬μ—μ„œ μ‚¬μš©ν•˜λŠ” 닀쀑행 μ—°μ‚°μž; ν•˜λ‚˜ μ΄μƒμ˜ 행이 쑰건을 λ§Œμ‘±ν•˜λ©΄ μ°Έ κ΄€κ³„λŒ€μˆ˜ 기호: $\cup$(ν•©μ§‘ν•©), $-$(μ°¨μ§‘ν•©), $\times$(μΉ΄ν‹°μ…˜ κ³±), $\pi$(ν”„λ‘œμ νŠΈ), $\bowtie$(쑰인), $\sigma$(선택), $\div$(λ‚˜λˆ—μ…ˆ) 쑰인 방식 Theta Join : 쑰인 쑰건이 λ“±ν˜Έκ°€ μ•„λ‹Œ λ‹€λ₯Έ 비ꡐ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λŠ” 쑰인 방식 Equi Join : 쑰인 쑰건이 λ“±ν˜Έ(=)인 쑰인 방식 Natural Join : 두 λ¦΄λ ˆμ΄μ…˜μ˜ 곡톡 속성을 κΈ°μ€€μœΌλ‘œ μžλ™μœΌλ‘œ μ‘°μΈν•˜λŠ” 방식 μ„Έμ…˜ ν•˜μ΄μž¬ν‚Ή (Session Hijacking) : μ‚¬μš©μžμ˜ μ„Έμ…˜μ„ νƒˆμ·¨ν•˜μ—¬ λΆˆλ²•μ μœΌλ‘œ μ ‘κ·Όν•˜λŠ” 곡격 기법 OS κ΄€λ ¨ κ°œλ… λ§ˆμ΄ν¬λ‘œμ»€λ„ : λ‹€μ–‘ν•œ μ„œλΉ„μŠ€λ₯Ό Kernel Modeκ°€ μ•„λ‹Œ User Modeμ—μ„œ μ²˜λ¦¬ν•˜λŠ” μ΄ˆμ†Œν˜• 컀널 ν”„λ‘œμ„ΈμŠ€ μŠ€μΌ€μ₯΄λ§ SJF(Shortest Job First) : κ°€μž₯ 짧은 μž‘μ—…μ„ λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” 방식 HRN (Highest Response Ratio Next) : λŒ€κΈ° μ‹œκ°„κ³Ό μ„œλΉ„μŠ€ μ‹œκ°„μ„ κ³ λ €ν•˜μ—¬ μš°μ„ μˆœμœ„λ₯Ό κ²°μ •ν•˜λŠ” 방식 RR(Round Robin) : 각 ν”„λ‘œμ„ΈμŠ€μ— λ™μΌν•œ μ‹œκ°„ ν• λ‹ΉλŸ‰μ„ μ£Όκ³  μˆœν™˜μ μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 방식 SRTF(Shortest Remaining Time First) : 남은 μ‹€ν–‰ μ‹œκ°„μ΄ κ°€μž₯ 짧은 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” 방식 ν”Όν„°μŠ¨ μ•Œκ³ λ¦¬μ¦˜ : 두 ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μƒν˜Έ 배제λ₯Ό 보μž₯ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜; ν”Œλž™κ·Έμ™€ 턴을 μ‚¬μš©ν•˜μ—¬ μƒν˜Έ λ°°μ œμ™€ μ§„μž… ν—ˆμš©μ„ κ΅¬ν˜„ 기타 κ°œλ… ν”Όμ½”λ„· : μ—¬λŸ¬ 개의 λ…λ¦½λœ μž₯μΉ˜κ°€ λΈ”λ£¨νˆ¬μŠ€ κΈ°μˆ μ΄λ‚˜ UWB 톡신 κΈ°μˆ μ„ μ‚¬μš©ν•˜μ—¬ 톡신망을 ν˜•μ„±ν•˜λŠ” 무선 λ„€νŠΈμ›Œν¬ 기술 μ§€κ·ΈλΉ„ :저속 전솑 속도λ₯Ό κ°–λŠ” ν™ˆμ˜€ν† λ©”μ΄μ…˜ 및 데이터 λ„€νŠΈμ›Œν¬λ₯Ό μœ„ν•œ ν‘œμ€€ 기술 클리어링 ν•˜μš°μŠ€ : λ””μ§€ν„Έ μ €μž‘κΆŒ 라이선싱을 μ€‘κ°œν•˜κ³  λΌμ΄μ„ μŠ€ λ°œκΈ‰μ„ μˆ˜ν–‰ν•˜λŠ” μ •μ‚°μ†Œ 데이터 마트 : λ°μ΄ν„°μ˜ ν•œ λΆ€λΆ„μœΌλ‘œμ„œ νŠΉμ • μ‚¬μš©μžκ°€ 관심을 κ°–λŠ” 데이터듀을 담은 비ꡐ적 μž‘μ€ 규λͺ¨μ˜ 데이터 μ›¨μ–΄ν•˜μš°μŠ€ OLAP : 온라인 뢄석 처리; 데이터 μ›¨μ–΄ν•˜μš°μŠ€μ˜ 데이터λ₯Ό μ „λž΅μ μΈ μ •λ³΄λ‘œ λ³€ν™˜μ‹œμΌœμ„œ μ˜μ‚¬κ²°μ •μ„ μ§€μ›ν•˜λŠ” μ—­ν•  μˆ˜ν–‰ semantic web : μ›Ή μƒμ˜ 정보에 의미λ₯Ό λΆ€μ—¬ν•˜μ—¬ 기계가 이해할 수 μžˆλ„λ‘ ν•˜λŠ” 기술 μ˜¨ν†¨λ‘œμ§€(Ontology) : νŠΉμ • 도메인에 λŒ€ν•œ κ°œλ…κ³Ό κ·Έλ“€ κ°„μ˜ 관계λ₯Ό μ •μ˜ν•˜λŠ” λͺ…μ„Έ λ””μ§€ν„Έ 아카이빙 : λ””μ§€ν„Έ 자료λ₯Ό μž₯기적으둜 λ³΄μ‘΄ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” κ³Όμ • CEP(Complex Event Processing) : μ‹€μ‹œκ°„μœΌλ‘œ λŒ€λŸ‰μ˜ 이벀트λ₯Ό μ²˜λ¦¬ν•˜κ³  λΆ„μ„ν•˜λŠ” 기술 λ…Έλͺ¨ν¬λΉ„μ•„ : μŠ€λ§ˆνŠΈν°μ„ μžƒμ–΄λ²„λ¦¬κ±°λ‚˜ μ‚¬μš©ν•  수 μ—†λŠ” 상황에 λŒ€ν•œ λΆˆμ•ˆκ° ITIL(Information Technology Infrastructure Library) : 영ꡭ μ •λΆ€κ°€ λ‹€μ–‘ν•œ IT μ„œλΉ„μŠ€λ“€μ˜ 관리 방법듀을 λͺ¨μ•„ λ§Œλ“  ν‘œμ€€μ μΈ μ°Έκ³  λ¬Έμ„œ 데이터 λ§ˆμ΄λ‹ : λŒ€λŸ‰μ˜ λ°μ΄ν„°μ—μ„œ μœ μš©ν•œ 정보λ₯Ό μΆ”μΆœν•˜λŠ” κ³Όμ • μ˜€ν”ˆ μŠ€νƒ : μ•„νŒŒμΉ˜ λΌμ΄μ„ μŠ€λ‘œ λ°°ν¬λ˜λŠ” ν΄λΌμš°λ“œ ν”Œλž«νΌ ν”„λ‘œμ νŠΈ BCP(Business Continuity Planning) : μž¬ν•΄ λ°œμƒ μ‹œ λΉ„μ¦ˆλ‹ˆμŠ€ μš΄μ˜μ„ μ§€μ†ν•˜κΈ° μœ„ν•œ κ³„νš Trust Zone : ARMμ—μ„œ κ°œλ°œν•œ λ³΄μ•ˆ 기술둜, ν•˜λ“œμ›¨μ–΄ 기반의 λ³΄μ•ˆ μ˜μ—­μ„ μ œκ³΅ν•˜μ—¬ λ―Όκ°ν•œ 데이터λ₯Ό λ³΄ν˜Έν•˜λŠ” 기술 WSDL (Web Services Description Language) : μ›Ή μ„œλΉ„μŠ€μ˜ κΈ°λŠ₯을 κΈ°μˆ ν•˜λŠ” XML 기반의 μ–Έμ–΄ EAI : κΈ°μ—… λ‚΄ λ‹€μ–‘ν•œ μ‹œμŠ€ν…œ κ°„μ˜ 데이터 톡합 및 μƒν˜Έ μš΄μš©μ„±μ„ μœ„ν•œ μ†”λ£¨μ…˜ NUI (Natural User Interface) : 신체λ₯Ό ν™œμš©ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ μ•”ν˜Έν™” μ•Œκ³ λ¦¬μ¦˜ : AES, DES, RSA, IDEA, Skipjack CVS : Concurrent Versions System; λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œ; 쀑앙 집쀑식 버전 관리 μ‹œμŠ€ν…œ SVN : Subversion; 버전 관리 μ‹œμŠ€ν…œμ˜ 일쒅; CVS의 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ 개발됨
1κ³Όλͺ© : μ†Œν”„νŠΈμ›¨μ–΄ 섀계 결합도 자료 결합도 : λͺ¨λ“ˆ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€κ°€ 자료 μš”μ†Œλ‘œλ§Œ ꡬ성될 λ•Œμ˜ 결합도 μŠ€νƒ¬ν”„ 결합도 : λͺ¨λ“ˆ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ°°μ—΄μ΄λ‚˜ λ ˆμ½”λ“œ λ“±μ˜ 자료 ꡬ쑰가 전달될 λ•Œμ˜ 결합도 μ œμ–΄ 결합도 : ν•œ λͺ¨λ“ˆμ΄ λ‹€λ₯Έ λͺ¨λ“ˆκ³Ό μ œμ–΄ μ‹ ν˜Έλ₯Ό μ΄μš©ν•˜μ—¬ ν†΅μ‹ ν•˜κ³ , κ³΅μœ λ˜λŠ” 곡톡 데이터 μ˜μ—­μ„ μ‚¬μš©ν•  λ•Œμ˜ 결합도 μ™ΈλΆ€ 결합도 : μ–΄λ–€ λͺ¨λ“ˆμ—μ„œ μ„ μ–Έν•œ 데이터(λ³€μˆ˜)λ₯Ό μ™ΈλΆ€μ˜ λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μ°Έμ‘°ν•  λ•Œμ˜ 결합도 곡유 결합도 : κ³΅μœ λ˜λŠ” 곡톡 데이터 μ˜μ—­μ„ μ—¬λŸ¬ λͺ¨λ“ˆμ΄ μ‚¬μš©ν•  λ•Œμ˜ 결합도 λ‚΄μš© 결합도 : ν•œ λͺ¨λ“ˆμ΄ λ‹€λ₯Έ λͺ¨λ“ˆμ˜ λ‚΄λΆ€ κΈ°λŠ₯ 및 κ·Έ λ‚΄λΆ€ 자료λ₯Ό 직접 μ°Έμ‘°ν•˜κ±°λ‚˜ μˆ˜μ •ν•  λ•Œμ˜ 결합도 응집도 순차적 응집도 (Sequential Cohesion) κ΅ν™˜μ  응집도 (Communicational Cohesion) 절차적 응집도 (Procedural Cohesion) μ‹œκ°„μ  응집도 (Temporal Cohesion) 논리적 응집도 (Logical Cohesion) μš°μ—°μ  응집도 (Coincidental Cohesion) μœ μŠ€μΌ€μ΄μŠ€(Use Case)의 ꡬ성 μš”μ†Œ κ°„μ˜ 관계 μ—°κ΄€ 관계 포함 관계 ν™•μž₯ 관계 μΌλ°˜ν™” 관계 μžλ£Œνλ¦„λ„μ˜ 각 μš”μ†Œλ³„ ν‘œκΈ° ν˜•νƒœ Process : 원 Data Flow : ν™”μ‚΄ν‘œ Data Store : 평행선 Terminator : μ‚¬κ°ν˜• μΆ”μƒν™”μ˜ μ’…λ₯˜ 자료 좔상화 κ³Όμ • 좔상화 μ œμ–΄ 좔상화 UML λͺ¨λΈμ—μ„œμ˜ 관계 Aggregation : μ§‘ν•© 관계 Generalization : μΌλ°˜ν™” 관계 Composition : 포함 관계 Dependency : 의쑴 관계 Realization : 싀체화 관계 2κ³Όλͺ© : μ†Œν”„νŠΈμ›¨μ–΄ 개발 법칙 νŒŒλ ˆν†  법칙 : 였λ₯˜μ˜ 80%λŠ” 전체 λͺ¨λ“ˆμ˜ 20% λ‚΄μ—μ„œ λ°œκ²¬λœλ‹€λŠ” 법칙 ν•΄μ‹±ν•¨μˆ˜ μ’…λ₯˜ μ œμ‚°λ²•, μ œκ³±λ²•, 폴딩법, 기수 λ³€ν™˜λ²•, λŒ€μˆ˜μ  코딩법, κ³„μˆ˜ 뢄석법(숫자 뢄석법), λ¬΄μž‘μœ„λ²•
🏫 ν•™κ³Ό 곡뢀
1μ£Όμ°¨ - μ›μœ μž¬ κ΅μˆ˜λ‹˜ - 첨단뢄야 ν˜μ‹ μœ΅ν•©λŒ€ν•™μ‚¬μ—… (COSS: Convergence and Open Sharing System) μΆ”μ§„λ°°κ²½ : λ””μ§€ν„Έ μ „ν™˜, κΈ€λ‘œλ²Œ 경쟁 심화에 따라 μ‹ κΈ°μˆ  초격차 확보 및 κΈ‰μ¦ν•˜λŠ” μ‹ μ‚°μ—… 인λ ₯ μˆ˜μš”μ— λŒ€μ‘ν•  수 μžˆλŠ” 인재 μ–‘μ„± μΆ©λ‚¨λŒ€ν•™κ΅ : 블둝체인 λΆ„μ•Ό νŠΉν™”, μ—°κ΅¬ν˜‘λ ₯(연ꡬ단지) 쀑심 νŠΉν™” 5개 μœ΅λ³΅ν•©μ°½μ˜μ „κ³΅ λΈ”λ‘μ²΄μΈμœ΅ν•©μ „κ³΅ μ‚¬μ΄λ²„λ³΄μ•ˆμœ΅ν•©μ „κ³΅ ν΄λΌμš°λ“œμœ΅ν•©μ „κ³΅ λ°μ΄ν„°λ³΄μ•ˆν™œμš©μœ΅ν•©μ „κ³΅ : 컴퓨터 λΉ„μ „κ³΅μž λŒ€μƒ κ°œμΈμ •λ³΄λ³΄ν˜Έμœ΅ν•©μ „κ³΅ 25-1ν•™κΈ° μΆ©λ‚¨λŒ€ν•™κ΅ κ°œμ„€ κ³Όλͺ© 블둝체인 개둠 블둝체인 ν”„λ‘œκ·Έλž˜λ° λ””μ§€ν„Έ μžμ‚°κ³Ό 블둝체인 학생지원 ν˜μ‹ μœ΅ν•©λŒ€ν•™ ν•™μœ„ 취득 μž₯ν•™κΈˆ 지원 전문가와 ꡐλ₯˜ 기회 ν•™μŠ΅κΈ°κΈ° 지원 ν˜„μž₯μ‹€μŠ΅ 기회 3μ£Όμ°¨ - κΉ€ν˜•μ‹  κ΅μˆ˜λ‹˜ AI기술의 μž„λ² λ””λ“œ μ‹œμŠ€ν…œν™” 이유 Privacy (κ°œμΈμ •λ³΄ 보호) Latency (μ§€μ—°μ‹œκ°„) Cost (λΉ„μš©) Embedding Resnet Resnet을 μž„λ² λ””λ“œ μ‹œμŠ€ν…œμ— μ μš©ν•¨
μžλ°” λ°”μ΄νŠΈ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” 가상 λ¨Έμ‹  JVM의 ꡬ쑰 클래슀 λ‘œλ” (Class Loader) λ‘œλ”© (Loading) : .class νŒŒμΌμ„ 읽어듀여 λ©”λͺ¨λ¦¬μ— 적재 링크 (Linking) : 적재된 클래슀의 μ°Έμ‘°λ₯Ό ν™•μΈν•˜κ³  μ€€λΉ„ μ΄ˆκΈ°ν™” (Initialization) : static 블둝과 static λ³€μˆ˜ μ΄ˆκΈ°ν™” μ‹€ν–‰ μ—”μ§„ (Execution Engine) 클래슀 λ‘œλ”κ°€ λ©”λͺ¨λ¦¬μ— 적재된 λ°”μ΄νŠΈ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” μ—­ν•  인터프리터 (Interpreter) λ°”μ΄νŠΈ μ½”λ“œλ₯Ό λͺ…λ Ήμ–΄ λ‹¨μœ„λ‘œ μ½μ–΄μ„œ μ‹€ν–‰ JIT 컴파일러 (Just-In-Time Compiler) Runtime μ‹œμ μ— λ°”μ΄νŠΈ μ½”λ“œ 전체λ₯Ό μ»΄νŒŒμΌν•˜μ—¬ κΈ°κ³„μ–΄λ‘œ λ³€κ²½ ν›„ μ‹€ν–‰ -> μ„±λŠ₯ ν–₯상 GC (Garbage Collector) 더 이상 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•˜λŠ” μ—­ν•  λŸ°νƒ€μž„ 데이터 μ˜μ—­ (Runtime Data Area) PC(Program Counter) μŠ€λ ˆλ“œκ°€ μ‹€ν–‰λ˜λŠ” λΆ€λΆ„μ˜ μ£Όμ†Œλ₯Ό κ°€λ¦¬ν‚€λŠ” 포인터 JVM μŠ€νƒ (JVM Stack) λ©”μ†Œλ“œ 호좜 μ‹œλ§ˆλ‹€ ν”„λ ˆμž„μ„ μΆ”κ°€ν•˜κ³ , λ©”μ†Œλ“œκ°€ μ’…λ£Œλ˜λ©΄ ν•΄λ‹Ή ν”„λ ˆμž„μ„ 제거 각 ν”„λ ˆμž„μ€ 둜컬 λ³€μˆ˜, μ—°μ‚° μŠ€νƒ, λ©”μ†Œλ“œ μˆ˜ν–‰μ΄ λλ‚˜λ©΄ μ’…λ£Œλ˜λŠ” 정보λ₯Ό μ €μž₯ Native λ©”μ†Œλ“œ μŠ€νƒ JNI(Java Native Interface)λ₯Ό 톡해 ν˜ΈμΆœλ˜λŠ” C/C++/Assembly와 같은 λ„€μ΄ν‹°λΈŒ μ½”λ“œλ₯Ό μœ„ν•œ μŠ€νƒ νž™ (Heap) new ν‚€μ›Œλ“œλ‘œ μƒμ„±λœ 객체와 배열을 μ €μž₯ν•˜λŠ” 곡간 λ©”μ†Œλ“œ μ˜μ—­ (Method Area) 클래슀 정보, μƒμˆ˜, 정적 λ³€μˆ˜ 등을 μ €μž₯ν•˜λŠ” 곡간 λͺ¨λ“  μ“°λ ˆλ“œκ°€ κ³΅μœ ν•˜λŠ” 곡간 -> λ©€ν‹°μ“°λ ˆλ”© μ‹œ 동기화 처리 ν•„μš”
🐍 Python
GIL(Global Interpreter Lock) ν•˜λ‚˜μ˜ μ“°λ ˆλ“œλ§Œ 파이썬 λ°”μ΄νŠΈμ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것 파이썬의 ν‘œμ€€ κ΅¬ν˜„μΈ CPythonμ—μ„œλ§Œ 쑴재 μž₯점 Reference Counting 기반 λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ˜ Race condition λ°©μ§€ 데이터 무결성 보μž₯ : λ©€ν‹°μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ 파이썬 κ°μ²΄λ‚˜ λ©”λͺ¨λ¦¬ κ΄€λ ¨ μž‘μ—…μ΄ μ•ˆμ „ν•˜κ²Œ μˆ˜ν–‰λ˜λ„λ‘ 보μž₯ 파이썬 Interpreter의 κ΅¬ν˜„μ„ λ‹¨μˆœν™” : λ³΅μž‘ν•œ 락 λ©”μ»€λ‹ˆμ¦˜μ΄ ν•„μš”μ—†μŒ C ν™•μž₯ λͺ¨λ“ˆμ΄ Thread-Safe ν•˜μ§€ μ•Šλ”λΌλ„ μ•ˆμ „ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ 보μž₯ ν”Œλž«νΌ 독립성 μœ μ§€ : CPU μ•„ν‚€ν…μ²˜λ³„ 동기화 λ©”μ»€λ‹ˆμ¦˜μ— μ˜μ‘΄ν•˜μ§€ μ•ŠμŒ 단점 λ©€ν‹°μ½”μ–΄ CPU ν™œμš© μ œν•œ: 단일 μ½”μ–΄λ§Œ μ‚¬μš©λ˜λ―€λ‘œ 병렬 처리의 이점을 얻을 수 μ—†μŒ λ©€ν‹°μ“°λ ˆλ”© μ„±λŠ₯ μ €ν•˜ : μ“°λ ˆλ“œ κ°„ context switching이 λΉˆλ²ˆν•˜κ²Œ λ°œμƒ 곡정성 문제 : νŠΉμ • μ“°λ ˆλ“œκ°€ GIL을 μž₯μ‹œκ°„ μ μœ ν•˜λ©΄ starvation λ¬Έμ œκ°€ λ°œμƒν•  수 있음 Reference Counting 객체가 λͺ‡ 번 μ°Έμ‘°λ˜λŠ”μ§€λ₯Ό μ„Έμ–΄μ„œ 0이 되면 λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•˜λŠ” 방식
πŸ‘¨β€πŸ’» λͺ¨κ°μ½”
1. Agile 방법둠 Agile μ„ μ–Έλ¬Έ μ‚¬λžŒκ³Ό μƒν˜Έμž‘μš© > ν”„λ‘œμ„ΈμŠ€μ™€ 도ꡬ μž‘λ™ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ > 포괄적인 λ¬Έμ„œ 고객과의 ν˜‘λ ₯ > 계약 ν˜‘μƒ 변화에 λŒ€ν•œ λŒ€μ‘ > κ³„νšμ„ λ”°λ₯΄κΈ° Agile 12κ°€μ§€ 원칙 μ΄ˆκΈ°λΆ€ν„° μ§€μ†μ μœΌλ‘œ 고객을 만쑱 μš”κ΅¬μ‚¬ν•­ λ³€κ²½ 수용 짧은 배포 μ£ΌκΈ° κΈ°νšμžμ™€ 개발자의 ν˜‘μ—… λ™κΈ°λΆ€μ—¬λœ νŒ€μ›λ“€λ‘œ νŒ€λΉŒλ”© 얼꡴보고 λŒ€ν™”ν•˜κΈ° λ™μž‘λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ‘œ μ§„μ²™ μΈ‘μ • 지속 κ°€λŠ₯ν•œ 개발 속도 μœ μ§€ 쒋은 기술둜 쒋은 μ„€κ³„ν•˜κΈ° λ‹¨μˆœμ„± : ν•„μš”μ—†λŠ” 일 μ΅œμ†Œν™”ν•˜κΈ° μžκΈ°μ‘°μ§ν™” νŒ€ μ •κΈ°μ μœΌλ‘œ νš¨μœ¨μ„±μ„ ν–₯μƒμ‹œν‚€κΈ° Self-Organizing Team (μžκΈ°μ‘°μ§ν™” νŒ€) 슀슀둜 μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜λ©° μ§„ν–‰ 상황을 λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 방법을 슀슀둜 κ²°μ •ν•˜λŠ” νŒ€
상황 μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ “μ•Œλ‘"을 κ°œλ°œν•˜λ˜ 쀑, μ‚¬μš©μžκ°€ μ•…μ˜μ μΈ λͺ©μ μœΌλ‘œ 반볡적으둜 μš”μ²­μ„ λ³΄λ‚΄λŠ” 것을 μ–΄λ–»κ²Œ λ§‰μ„κΉŒ κ³ λ―Όν•˜κ²Œ λ˜μ—ˆλ‹€. 쑰사λ₯Ό 톡해 Googleμ—μ„œ μ œκ³΅λ˜λŠ” Recaptchaλ₯Ό μ‚¬μš©ν•˜λ©΄ μ†μ‰½κ²Œ λ°©μ§€ν•  수 μžˆλ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆλ‹€. 곡격자의 μž…μž₯μ—μ„œ μƒκ°ν–ˆμ„ λ•Œ, μ§€κΈˆ ν”„λ‘œμ νŠΈμ—μ„œ κ°€μž₯ μ·¨μ•½ν•œ 뢀뢄은 νšŒμ›κ°€μž…μ΄λΌκ³  μƒκ°ν–ˆλ‹€. νšŒμ›κ°€μž…μ€ νšŒμ›μ΄ μ•„λ‹Œ μžκ°€, 아이디와 λΉ„λ°€λ²ˆν˜Έ κ·œμΉ™λ§Œ λ§Œμ‘±ν•œλ‹€λ©΄ 반볡적으둜 μš”μ²­μ„ 보낼 수 있고, μ΄λŠ” DB에 λ°”λ‘œ μ €μž₯되기 λ•Œλ¬Έμ΄λ‹€. λ”°λΌμ„œ νšŒμ›κ°€μž… 뢀뢄에 Recaptchaλ₯Ό μ μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€. Recaptchaλž€? RecaptchaλŠ” κ΅¬κΈ€μ—μ„œ μ œκ³΅ν•˜λŠ” 무료 λ³΄μ•ˆ μ„œλΉ„μŠ€λ‘œ, μ‚¬μš©μžκ°€ λ‘œλ΄‡μ΄ μ•„λ‹˜μ„ 증λͺ…ν•˜λŠ” 방법 쀑 ν•˜λ‚˜μ΄λ‹€.