hyperskill - Software lifecycle
우리는 코드가 준비되자마자 그냥 배포 할 수 있나요?
솔직한 대답은, 아닙니다.
어떠한 코드던 작성하기 전에,
무엇을 위한 것인지, 누가 쓰는 것인지 이해 할 필요가 있습니다.
프로젝트에서 코딩은 하나의 부분이라는 것을 드러냈으며,
계획, 분석, 등등을 포함하고 있습니다.
이러한 모든 부분들을 함께 가지고 있다면,
우리는 그것을 Software Development Life Cycle (SDLC) 라고 부릅니다.
이 사이클은 모든 프로젝트의 활동들을 커버하며, 이들의 모든 뉘앙스를 고려하는 데 도움을 줍니다.
보기엔 어려워 보이지만, 단계 별로 리뷰 해 봅시다.
가장 기본적인 것은 코드로 작성하고 끝나지 않는 프로젝트입니다.
Stages - 단계
프로젝트의 생명 주기는 밑의 단계들로 구성되어 있습니다:
Analysis & planning
이 단계는 분석적이며, 반영적입니다.
그리고 프로젝트가 발생하는 곳입니다.
"풀어야 할 문제는 무엇인가?" 에 대한 질문에 대답해야만 하는데,
왜냐면 당신의 프로젝트와 연관되어 있기 때문입니다.
시장에서 성공적이며, 수요가 있는 제품을 만들 당신의 기회를 상당히 증가시키는 데 염두에 두세요.
당신이 상당한 양의 풀지 못한 문제들을 찾고 난 후, 당신은 스스로에게 다음 질문을 물어보세요 :
"내가 개발하고 싶은 것은 무엇인가?"
그리고 계획을 작성하세요.
Design and architecture - 디자인과 아키텍쳐
좋아요, 당신은 시장의 수요와 당신의 능력을 분석했습니다.
또한 당신은 이러한 결과에 기초에 도달할 수 있게 당신은 세팅 할 겁니다.
"이걸 어떻게 달성하나요?"
이 단계에서는, 당신은 디자이닝과 어떻게 할지를 이해 할 필요가 있습니다.
예를 들어, 당신은 많은 특이한 기능을 가진, 효율적이며, 보안적이고, 재밌는 어플리케이션을 만들고 싶어 합니다.
Development - 개발
이제 당신의 컴퓨터를 키고 작업을 시작하세요!
이제 당신의 프로젝트는 시작점에 올랐습니다.
중요한 것은 이전에 당신이 만든 계획에 따라 분명하게 가야 한다는 것 입니다.
QA and review - QA과 리뷰
심지어 이번 단계에서도 새로운 이슈들은 종종 올라옵니다.
하지만 인내심을 갖고, 당신의 프로젝트만이 이 단계에서의 혜택을 얻을 거라는 것을 기억하세요.
이 단계는 특히 당신이 뭔가를 망쳐놨을 때 매우 좋은데,
왜냐면 이는 당신이 릴리즈 하기 전에 모든것을 고칠 기회를 가질 수 있기 때문입니다!
Deployment and maintenance - 배포와 유지보수
만세, 이 프로젝트는 준비되었습니다!
당신의 제품을 당신의 타겟 고객들에게 권해 보세요, 그리고 판매량 추적을 시작하세요.
만약 당신이 모든 것을 향상시키고 싶다면, 유저들을 통한 설문조사화 추천들을 보며,
피드백을 분석하세요.
마지막 단계 이후, 당신은 무언가를 향상시키고 싶을 겁니다.
이 의미는 당신은 분석하고, 계획하고, 개발하고, 테스트 과정을 또 한다는 것입니다.
이러한 순환과정은 많은 시간으로 반복 될 수 있으며,
제품이 더 많은 향상을 만들어 내는 것이 의미가 없을 정도록 완벽 해 질 때 끝납니다.
Pros and cons of SDLC - SDLC에 대한 장점과 단점
이러한 접근법의 단점은, 명백히 이 접근법의 알고리즘이 충분히 구현되지 않았을 때 명백합니다.
예를 들어, 만약 계획과 타임라인이 없다면, :
- 우리는 언제나 완수해야 할 것이 있기에, 제품을 영원히 작업합니다.
- 복잡한 제품을 만드는 것이 어려울 수 있는데, 누군가는 이전 버전의 단계가 끝나기를 기다려야 하기 때문입니다.
- 시간이 지나도, 작업이 고르게 분배되지 않습니다.
더 나아가, 만약 우리가 디자인 과 아키텍처를 고려하지 않았다면 :
- 우리의 제품에 기능을 추가하기 어려워지는데, 기능을 넣을 계획을 하지 않았었기 때문입니다
- 간단하게 어플리케이션이 불편하거나, 실행 불가능 할 수도 있습니다.
마지막으로 중요한 것은, 만약 우리가 유지보수를 하지 않는다면,
시간이 지나서, 유저들은 유지보수를 스스로 할 겁니다.
그들은 많고 더 많은 버그들을 찾아 낼 겁니다.
결과적으로, 우리의 앱과 비슷하며, 이슈가 더 적은 제품을 사용하기 시작 할 겁니다.
다른 한 편으로는,
만약 당신이 작은 프로젝트를 작업하거나, 2-3명 되는 작은 팀에 여러 규칙을 결합해 놓았다면,
당신의 동료들과 작은 의견으로 계획에 동기화하는 것은 쉬울 수 있습니다.
하지만, 시간이 조금 지나 팀이 커졌다면,
당신은 빨리 배포에 대한 책임과 워크플로우에 대해서 생각해야 할 겁니다.
Conclusion - 결론
따라서, 우리는 IT 프로젝트에서의 전체적인 생명 주기를 고려 해 보았습니다.
어떻게 시작하며, 어떻게 하며, 언제 끝날 수 있는지에 대해서요.
이제 당신은 성공적이며, 유용한 제품을 위해 무엇을 개발해야 하는지를 알게 되었습니다.
words to remember
nuances : 뉘앙스, 미묘한 차이
reflective : 성찰적인, 반사적, 반사하는, 반성하는
emerge : 알려지다, 나타나다, 드러나다, 벗어나다
take into account : 고려하다
attainable : 이를 수 있는
patient : 인내심 있는, 인내심이 강한, 참을성이 강한
Hooray : 만세!
apparent : 명백한, 겉모양만의
evenly : 고르게, 나란히, 평등하게
analog : 비슷한 물건, 동류어, 상사기관
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Git' 카테고리의 다른 글
| Introduction to software development models - 소프트웨어 개발 모델에 대한 기초적인 이해 (0) | 2024.06.17 |
|---|---|
| Walking through directories in the command line - 명령어를 사용해서 디렉토리 이동하기 (1) | 2024.06.14 |
| Searching with git - Git 에서 검색하는 법 (0) | 2024.06.13 |
| Editing the commit - 커밋 내용 수정하기 (0) | 2024.06.12 |
| SSH - SSH (Secure Shell) 기초 (1) | 2024.06.11 |
hyperskill - Software lifecycle
우리는 코드가 준비되자마자 그냥 배포 할 수 있나요?
솔직한 대답은, 아닙니다.
어떠한 코드던 작성하기 전에,
무엇을 위한 것인지, 누가 쓰는 것인지 이해 할 필요가 있습니다.
프로젝트에서 코딩은 하나의 부분이라는 것을 드러냈으며,
계획, 분석, 등등을 포함하고 있습니다.
이러한 모든 부분들을 함께 가지고 있다면,
우리는 그것을 Software Development Life Cycle (SDLC) 라고 부릅니다.
이 사이클은 모든 프로젝트의 활동들을 커버하며, 이들의 모든 뉘앙스를 고려하는 데 도움을 줍니다.
보기엔 어려워 보이지만, 단계 별로 리뷰 해 봅시다.
가장 기본적인 것은 코드로 작성하고 끝나지 않는 프로젝트입니다.
Stages - 단계
프로젝트의 생명 주기는 밑의 단계들로 구성되어 있습니다:
Analysis & planning
이 단계는 분석적이며, 반영적입니다.
그리고 프로젝트가 발생하는 곳입니다.
"풀어야 할 문제는 무엇인가?" 에 대한 질문에 대답해야만 하는데,
왜냐면 당신의 프로젝트와 연관되어 있기 때문입니다.
시장에서 성공적이며, 수요가 있는 제품을 만들 당신의 기회를 상당히 증가시키는 데 염두에 두세요.
당신이 상당한 양의 풀지 못한 문제들을 찾고 난 후, 당신은 스스로에게 다음 질문을 물어보세요 :
"내가 개발하고 싶은 것은 무엇인가?"
그리고 계획을 작성하세요.
Design and architecture - 디자인과 아키텍쳐
좋아요, 당신은 시장의 수요와 당신의 능력을 분석했습니다.
또한 당신은 이러한 결과에 기초에 도달할 수 있게 당신은 세팅 할 겁니다.
"이걸 어떻게 달성하나요?"
이 단계에서는, 당신은 디자이닝과 어떻게 할지를 이해 할 필요가 있습니다.
예를 들어, 당신은 많은 특이한 기능을 가진, 효율적이며, 보안적이고, 재밌는 어플리케이션을 만들고 싶어 합니다.
Development - 개발
이제 당신의 컴퓨터를 키고 작업을 시작하세요!
이제 당신의 프로젝트는 시작점에 올랐습니다.
중요한 것은 이전에 당신이 만든 계획에 따라 분명하게 가야 한다는 것 입니다.
QA and review - QA과 리뷰
심지어 이번 단계에서도 새로운 이슈들은 종종 올라옵니다.
하지만 인내심을 갖고, 당신의 프로젝트만이 이 단계에서의 혜택을 얻을 거라는 것을 기억하세요.
이 단계는 특히 당신이 뭔가를 망쳐놨을 때 매우 좋은데,
왜냐면 이는 당신이 릴리즈 하기 전에 모든것을 고칠 기회를 가질 수 있기 때문입니다!
Deployment and maintenance - 배포와 유지보수
만세, 이 프로젝트는 준비되었습니다!
당신의 제품을 당신의 타겟 고객들에게 권해 보세요, 그리고 판매량 추적을 시작하세요.
만약 당신이 모든 것을 향상시키고 싶다면, 유저들을 통한 설문조사화 추천들을 보며,
피드백을 분석하세요.
마지막 단계 이후, 당신은 무언가를 향상시키고 싶을 겁니다.
이 의미는 당신은 분석하고, 계획하고, 개발하고, 테스트 과정을 또 한다는 것입니다.
이러한 순환과정은 많은 시간으로 반복 될 수 있으며,
제품이 더 많은 향상을 만들어 내는 것이 의미가 없을 정도록 완벽 해 질 때 끝납니다.
Pros and cons of SDLC - SDLC에 대한 장점과 단점
이러한 접근법의 단점은, 명백히 이 접근법의 알고리즘이 충분히 구현되지 않았을 때 명백합니다.
예를 들어, 만약 계획과 타임라인이 없다면, :
- 우리는 언제나 완수해야 할 것이 있기에, 제품을 영원히 작업합니다.
- 복잡한 제품을 만드는 것이 어려울 수 있는데, 누군가는 이전 버전의 단계가 끝나기를 기다려야 하기 때문입니다.
- 시간이 지나도, 작업이 고르게 분배되지 않습니다.
더 나아가, 만약 우리가 디자인 과 아키텍처를 고려하지 않았다면 :
- 우리의 제품에 기능을 추가하기 어려워지는데, 기능을 넣을 계획을 하지 않았었기 때문입니다
- 간단하게 어플리케이션이 불편하거나, 실행 불가능 할 수도 있습니다.
마지막으로 중요한 것은, 만약 우리가 유지보수를 하지 않는다면,
시간이 지나서, 유저들은 유지보수를 스스로 할 겁니다.
그들은 많고 더 많은 버그들을 찾아 낼 겁니다.
결과적으로, 우리의 앱과 비슷하며, 이슈가 더 적은 제품을 사용하기 시작 할 겁니다.
다른 한 편으로는,
만약 당신이 작은 프로젝트를 작업하거나, 2-3명 되는 작은 팀에 여러 규칙을 결합해 놓았다면,
당신의 동료들과 작은 의견으로 계획에 동기화하는 것은 쉬울 수 있습니다.
하지만, 시간이 조금 지나 팀이 커졌다면,
당신은 빨리 배포에 대한 책임과 워크플로우에 대해서 생각해야 할 겁니다.
Conclusion - 결론
따라서, 우리는 IT 프로젝트에서의 전체적인 생명 주기를 고려 해 보았습니다.
어떻게 시작하며, 어떻게 하며, 언제 끝날 수 있는지에 대해서요.
이제 당신은 성공적이며, 유용한 제품을 위해 무엇을 개발해야 하는지를 알게 되었습니다.
words to remember
nuances : 뉘앙스, 미묘한 차이
reflective : 성찰적인, 반사적, 반사하는, 반성하는
emerge : 알려지다, 나타나다, 드러나다, 벗어나다
take into account : 고려하다
attainable : 이를 수 있는
patient : 인내심 있는, 인내심이 강한, 참을성이 강한
Hooray : 만세!
apparent : 명백한, 겉모양만의
evenly : 고르게, 나란히, 평등하게
analog : 비슷한 물건, 동류어, 상사기관
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Git' 카테고리의 다른 글
| Introduction to software development models - 소프트웨어 개발 모델에 대한 기초적인 이해 (0) | 2024.06.17 |
|---|---|
| Walking through directories in the command line - 명령어를 사용해서 디렉토리 이동하기 (1) | 2024.06.14 |
| Searching with git - Git 에서 검색하는 법 (0) | 2024.06.13 |
| Editing the commit - 커밋 내용 수정하기 (0) | 2024.06.12 |
| SSH - SSH (Secure Shell) 기초 (1) | 2024.06.11 |