CS 공부, 기타(29)
-
객체 지향 프로그래밍 (OOP)
객체 = 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간값을 저장할 변수와 작업을 수행할 메소드를 서로 연관된 것들끼리 묶어서 만든 것클래스의 타입으로 선언되었을 때를 ‘객체’객체를 실체화 하는 것. 즉, 객체를 메모리에 할당하면 ‘인스턴스’ 장점코드 변경 최소화, 유지보수 용이코드의 재사용 용이코드를 최대한 간결하게 표현 가능 단점처리 속도가 상대적으로 느림설계 시 많은 시간과 노력이 필요객체가 많으면 용량이 커짐 OOP 의 특징추상화캡슐화 → 낮은 결합도를 유지상속다형성 객체지향 설계 5원칙 (SOLID)단일 책임 원칙 → 클래스는 하나의 책임만 갖자! (현실적으로는 어렵다)개방-폐쇄 원칙 → 웬만하면 기존 클래스 수정하지 마라! 새롭게 하고 싶으면 상속 받아서 해라!리스코프 치환 원칙..
2024.07.17 -
Agile 방법론
특징고객과 개발자의 지속적인 소통 → 요구사항을 신속하게 반영팀의 목적과 고객의 의견을 가장 높은 가치로 둠주기적인 회의와 제품 시연고객으로부터 즉각적인 피드백을 통한 수정, 보완 가능 애자일 개발론의 등장 배경폭포수(워터폴) 개발론 → 작업 절차가 한 단계씩 차례로 진행되는 가장 오래된 SW 개발론속도가 느리고 유연하지 못하다.요구 사항이 바뀌거나 수정하려면 다시 맨 처음부터 수정해야 하는 불편함이 있다. 워터폴 VS 애자일워터폴 방법론⇒ 문서화 많음. 대응 느림. 요구사항이 디테일하고 유동성이 적은 큰 규모의 제품 프로젝트에 적합 애자일 방법론⇒ 지속적으로 요구사항을 반영. 고객, 시장의 변화에 빠르게 대응해야 할 때, 요구사항이 변경되거나 문제 발생이 잦은 프로젝트에 적합 애자일의 장단점장점 ⇒계획..
2024.07.12 -
코드 리뷰의 중요성과 잘하는 법
코드 리뷰의 이점코드 품질 개선, 버그를 미리 예방팀 지식 공유를 통한 성장팀 개발 표준을 통한 확장성 코드 리뷰를 힘들게 하는 것들무응답느린 속도공격적인 커뮤니케이션 코드 리뷰는 지적하는 것이 아니라 의견을 나누고 질문을 하는 것 (커뮤니케이션)코드 리뷰하느라 작업이 느려진다? → 코드 리뷰를 안해서 다시 고치거나 버그에 대응하는 것이 더 오래 걸린다! ‘너’ 보다는 ‘우리’ 라는 말 쓰기!→ 코드를 리뷰하는게 아니라 상대를 리뷰하는 듯한 느낌을 줄 수 있다.형용사/부사 사용하지 않기→ 엄청 큰 실수를 한 것 같은 느낌을 줄 수 있다. 코드 ≠ 나나에 대한 평가가 아니라 그저 코드에 대한 리뷰이다. 리뷰는 당연한 것이 아니다. 리뷰어에게 감사하는 마음을 갖자. 어떻게 하면 코드 리뷰를 잘할 수 있을까?..
2024.07.05 -
도커와 쿠버네티스
DevOps 를 해야 하는 이유소프트웨어의 개발과 운영의 합성빨리 개발하고 배포하기 위해 한다! DevOps 하면 도커 / 쿠버네티스 라는 도구가 보통 사용되지만, DevOps 는 도구를 사용하는 것이 아니라 하나의 철학, 방법론이다.서비스의 빠른 개발, 배포라는 목표가 필요할 때 하나의 방법으로 도구를 사용하는 것이지 다짜고짜 도구를 쓴다고 해서 좋은 것이 아니다. Git 도 DevOps 에서 중요한 도구다.소스 관리의 표준으로 자리잡음. DevOps 를 한다→ 좋은 도구를 잘 사용해서 자동화, 측정, 공유, 축적 → 효율을 증가시킨다. 서버 관리 방법의 역사자체 서버를 운영 → 설정 관리 도구가 등장 → 가상 머신 등장 → 클라우드 등장 → paaS 등장 → 도커 등장 → 도커를 더 잘 관리하려고 쿠..
2024.07.05 -
Jira 활용
왜 Jira 를 사용할까?나 혼자 일하는게 아니라 여러 명이 일하기 때문에 이슈를 관리하고 공유할 때 Jira 가 필요하고 유용함.또한 이슈 트래킹 뿐 아니라 Project Management 에서도 강점을 가진다.리더 입장에서 팀원들이 담당한 업무들, 각 업무의 진행현황을 한눈에 파악할 수 있게 해준다. 애자일 방법론1. Scrum2~4주의 sprint 동안 백로그에 등록된 이슈 해결에 집중하고 새로운 스프린트가 시작되면 다시 백로그에 등록된 이슈 해결에 집중하는 방식 2. Kanban이슈들을 보드에 붙이고 관리해서 중요도에 따라 이슈들을 해결하는 방식 이런 방식들을 기능적으로 가능하게 해준 것이 Jira 이다. DevOps기존에는 개발팀(Dev)과 운영팀(Ops)이 업무가 분리되어 일하는 경우가 많았..
2024.07.04 -
Project Management
프로젝트 관리 = 일정 관리 ?? 프로젝트 정의한시적 수행기간 + 독특한 산출물타이트하게 수행기간을 두고 업무를 수행! ↔ 운영 업무 (Operation)수행기간 제한 없이 반복적인 업무 계속 하는 것이런 업무는 인공지능 발전에 따라 자동화 시스템이 대체하게 됨차세대 인재는 프로젝트를 잘해야 한다! PM 구성요소1. 범위 관리요구사항 정의 (요건, 기능)담당자, 역할을 정의일의 분량(기능) 선택 2. 일정 관리각 사람이 자기 역할을 제 시간에 해주어야 함마감 날짜 준수WBS 3. 원가 관리돈 쓰게 되면 신경써야 함예산 및 자원 확보 1970년대에는 이렇게 3대 제약조건이 있었고 이 조건들을 잘 지키면 프로젝트를 성공한다고 보았다. 4. 품질 관리1980년대에 들어서는 품질을 낮추면서 위 3대 조건만을 지..
2024.07.04