본문 바로가기

생각하며 살아가기679

개발자라면 반드시 알아야 할 안티패턴(anti-pattern) 완벽 정리! 개발자라면 반드시 알아야 할 안티패턴(anti-pattern) 완벽 정리!소프트웨어 개발 과정에서 피해야 할 "실패의 패턴"을 알고 있나요? 안티패턴(anti-pattern)은 흔히들 간과하지만, 결국 개발 생산성과 코드 품질을 떨어뜨리는 치명적인 문제로 발전할 수 있습니다. 이번 포스팅에서는 개발, 설계, 아키텍처에서의 주요 안티패턴과 이를 방지하기 위한 팁을 소개합니다. 1. 개발 안티패턴 (Development Anti-patterns)1️⃣ Spaghetti Code (스파게티 코드)정의: 구조 없이 복잡하게 얽힌 코드로 인해 유지보수가 어렵고 디버깅이 악몽이 되는 코드.문제점: 가독성 저하, 유지보수 비용 증가, 새로운 요구사항 반영의 어려움.예방 방법: 코드를 모듈화하고, 명확한 코딩 규칙 및.. 2024. 12. 20.
스마트홈과 지능형홈의 비교 스마트홈과 지능형홈의 개념 비교 구분            스마트홈 (Smart Home)                                             지능형 홈 (AI@Home)                                               기술        IoT(사물인터넷) 및 기본 자동화                                     AI(인공지능) 및 머신러닝 기반 기술  제어 방식   사용자 설정 및 원격 제어                                          AI 학습과 상황 인식에 따른 자율적 제어  주요 목적   기기 간 연결성 제공, 편리한 원격 제어                    거주자 맞춤형 제안 및 생.. 2024. 11. 18.
프로그래밍 기능사(현, 정보처리 기능사) | 자격명 변경 정보처리 기능사가 프로그래밍 기능사로 변경됩니다. 필기 과목이 프로그래밍 기초로 변경되고, 실기는 작업형으로 변경됩니다.이미 자격 갖고 계신 분들도 변경될 것으로 보이니 일정 참고하시고 변경 자격증 받는것도 생각해보세요. Written By 밤의카사노바 2024. 11. 18.
세그멘테이션 메커니즘 메커니즘1. 논리 메모리- 프로그램의 논리 주소- 세그먼트 번호와 오프셋으로 분할 2. 세그먼트 처리- 세그먼트 테이블: base, limit 정보 관리- TLB: 주소 변환 캐싱- MMU: 최종 주소 변환 3. 물리 메모리- 가변 분할 방식으로 세그먼트 할당- 세그먼트 사이의 빈 공간 (외부 단편화)- 동적 할당/해제 가능 2024. 10. 25.
RAID(RAID : Redundant Array of Independent Disks) 정의- 여러 개의 디스크에 데이터 중복 저장과 데이터의 분산 저장을 통한 성능 향상과 안정성 향상을 위한 스토리지 솔루션 키워드- RAID(Redundant Array of Independent Disks), RAID 0(Striping), RAID 1(Mirroring), RAID 2(비트수준분산+해밍코드), RAID 5(블록분산+패리티분산), RAID 0+1(Striping 후 Mirror), RAID 1+0(Mirror 후 Striping), 0 스트라이핑, 1 미러링, 2 ECC, 3 패리티, 4 블록, 5 분산, 6 더블 메커니즘 2024. 10. 25.
Pipeline Hazard(파이프라인 해저드) 정의- 파이프라인의 성능 저해하는 요인, CPI(명령어당 실행 클럭수)가 1이 되는 것을 방해하는 문제점- 파이프라인 수행이 지정된 클럭에서 수행되지 못하도록 방해 받는 상태 키워드- 구조적 해저드(자원충돌 / Pipeline H/W Resource, Replicate Resource), 데이터 해저드 (RAW,WAR,WAW / Forwarding, Reordering, Restrict S/W), 제어 해저드(분기 / Delayed Branch, Predict Branch) 메커니즘기술요소구조해저드  - 명령어와 데이터가 하나의 메모리에 존재하고, 버스도 하나인 경우 발생가능 (폰노이만 구조)   - CC4 시점에서 lw명령과 sub명령이 동시에 메모리 에 접근하여 자원 충돌   - 하나의 요청에 대해 .. 2024. 10. 25.
가트너 전략 기술 트렌드 2025 http://www.itdaily.kr/news/articleView.html?idxno=227943 가트너, 2025년 10대 전략 기술 트렌드 발표 - 아이티데일리[아이티데일리] 실행 가능한 객관적인 인사이트를 제공하는 가트너(Gartner)가 ‘2025년 기업들이 주목해야 할 10대 전략 기술 트렌드’를 발표했다.2025년 주요 트렌드로는 △에이전틱 인공지능(AI)www.itdaily.kr  참고: https://www.techrepublic.com/article/gartner-10-tech-trends-2024/https://digitaltransformation.co.kr/2025%EB%85%84-%EC%A3%BC%EB%AA%A9%ED%95%B4%EC%95%BC%ED%95%A0-10%EA%B0%.. 2024. 10. 23.
RAD(Rapid Application Development) 정의- 2~3개월 동안의 짧은 개발 주기 동안 개발 툴을 적극적으로 사용하여 소프트웨어를 개발하는 프로세스 모형 키워드- JRP, JAD, Construction Phase, Cutover, Time-Boxing 메커니즘 기술요소구성요소설명JRP (요구분석정의)- Joint Requirement Planning- 분석단계로 사용자와 함께 요구사항을 분석하고 계획을 세우는 단계JAD (사용자설계)- Joint Application Design- 설계단계로 사용자와 함께 개략적 모델링 이후 설계를 진행- 빠른 구현을 위한 CASE Tool 활용Construction Phase- SDLC의 개발 Task와 유사Cut Over- 대상 시스템의 설계와 개발을 완료하고 테스트한 후 운영에 필요한 매뉴얼 2024. 9. 24.
반복적 개발(증분형/진화형 개발모델) 정의- 사용자의 요구사항 일부분 혹은 제품의 일부분을 반복적으로 개발하여 고품질의 최종 시스템으로 완성해 가는 모델 키워드- 점증적 반복, 증분형 (요구사항 명확, 병행), 진화형 (요구 불명확, N단계 진화) 메커니즘증분형 개발모델[정의]사용자 요구사항 또는 제품의 일부분을 반복적으로 개발하면서 대상범위를 확대해 최종제품을 완성하는 방법[특징]1. 병렬 개발 수행 가능2. 고객요구사항 반영 진화형 개발모델[정의]시스템이 가지는 여러 구성요소의 핵심 부분을 개발한 후 각 구성 요소를 지속적으로 발전시켜 나가는 방법 [특징]1. 프로토타입2. 고객요구사항 정의가 어려운 경우 항목증분형 모형진화적 모형정의폭포수 모형에 반복적 수행 개념을 결합, 증분을 반복하여 최종 시스템을 구현하는 개발 모형핵심 요구사항을.. 2024. 9. 24.
Spiral 모델 정의- 시스템 개발 중 생기는 위험을 최소화하기 위해 나선을 돌면서 점진적으로 개발하는 모델 키워드- 계획 및 정의, 위험분석, 개발, 고객의 평가, 위험 최소화 메커니즘① 계획 및 정의 → ② 위험분석 → ③ 개발 → ④ 고객 평가 단계를 반복하여 점진적으로 개발기술요소계획 및 정의 단계(Planning and Definition) - 초기 요구분석 및 프로젝트 계획 수립 - 프로젝트 위험 식별 및 상세 관리 계획 수립 - 프로세스 각 단계에 대한 목표수립 - 프로젝트 단계별 계획서 - Risk Check List 위험분석 단계(Risk Analysis) - 위험 분석·평가하여 감소시키는 활동 - 식별된 위험의 종류에 따라 상세 분류 수행 - 위험 분석서 - 상세 분석서 개발 단계(Engineering.. 2024. 9. 24.