본문 바로가기

Professional Engineer85

개발자라면 반드시 알아야 할 안티패턴(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.
세그멘테이션 메커니즘 메커니즘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.
프로토타입 모델 정의- 사용자의 요구사항을 충분히 분석할 목적으로 짧은 시간 내에 시제품을 개발하여 평가한 후 구현하는 점진적 개발 모델 키워드- 프로토타입(시제품), 의사소통, 실험적 프로토타입, 진화적 프로토타입 메커니즘 기술요소계획수립  - 시스템 개발 계획 수립하고, 시스템의 전체적인 수립 - 시스템정의서 - 프로젝트 계획서 요구분석과 정의 - 고객의 요구사항을 정리하고 명세화 하는 단계로 명세화 방법으로 프로토타입을 사용 - 요구분석서 - 요구사항정의서 - 프로토타입 식별 Prototype(개발/개선) - 핵심기능을 가지고 구현 프로토타입의 대상선정하고 방향 및 내용을 명세화 한 설계서로 프로토타입을 구축 - 프로토타입 설계서 Prototype(검토/평가) - 개발된 프로토타입에 대한 고객의 평가를 실시하여, .. 2024. 9. 24.