본문 바로가기
반응형

CS49

프로젝트 관리 Preface 프로젝트 관리에 관한 공부를 하며 한 가지 의문점이 생겼다. "우리나라는 왜 독자적인 관리 체계를 형성하지 않고 외국에서 연구·개발된 사례를 그대로 적용시켜 사용할까?" 물론 소프트웨어 공학이란 학문의 역사가 매우 짧다는 것과, 우리나라만의 독자적인 관리 체계를 형성한다는 것이 결코 쉬운 일이 아니라는 것은 잘 알고 있으며, 소프트웨어 분야에서 선두주자로서의 역할을 톡톡히 한 외국의 관리 체계를 따르는 것이 옳지 않다는 것은 아니다. 즉, 라면계의 부동의 1티어인 신라면을 매워서 못먹는 사람들이 있듯, 아무리 잘 짜여진 학설이라도 주어진 상황과 환경에 따라 적용 여부가 달라질 수도 있다는 것이다. 외국의 관리 체계를 있는 그대로 따라하기 보단 우리나라 기업의 특성에 맞게 재단하여 적용시킨다.. 2021. 5. 28.
소프트웨어 개발방법론(2) Preface 이번 장을 공부하면서 느낀 점이 있다. '아는 만큼 보인다'라는 말은 괜히 나온 말이 아니다. 처음 글을 읽었을 땐 모르는 용어가 너무 많아 글의 요점을 파악하는 데 어려움이 있었다. 포털 사이트를 통해 단어의 의미를 파악한 후에야 저자가 전달하고자 하는 개념을 쉽고 빠르게 이해할 수 있었다. 앞으로의 IT 공부를 위해 각종 용어의 의미를 정확히 이해하고 암기하는 것이 필요해보인다. 또, 이번 장에서 소개된 plug-in은 티스토리에서도 사용할 수 있는 기능이다. 이전까지는 이 단어의 정확한 의미를 몰라 기능을 사용하지 못했는데, 무슨 의미이며, 언제 어떻게 사용되는 것인지 알고 나니 꼭 사용해봐야겠다는 생각이 들었다. 마지막으로 CBD는 나같은 초심자가 간단한 소프트웨어를 개발할 때 다른.. 2021. 5. 27.
소프트웨어 개발방법론(1) Preface 소프트웨어 개발방법론... 복잡한 녀석이다. 종류가 많을 뿐더러 미묘한 차이만 있을 뿐 전체적 틀은 비슷한 경우가 많다. 폭포수 모델, 원형 패러다임, 나선형 패러다임은 각각 장단점이 있지만, 셋 중 내가 생각하는 최적의 개발방법론은 나선형 패러다임이다. 이유는 간단하다. 소프트웨어 개발도 결국 사업의 한 분야이기 때문이다. 나는 사업에선 항상 긴장한 상태로 위험 분석을 하며 프로젝트의 진행 여부를 결정하는 것이 최우선되어야 한다고 생각한다. 아무리 완벽한 소프트웨어를 개발한다고 하더라도 투자한 자본을 회수하지 못하면 실패한 프로젝트나 다름없다. 그렇기에 위험을 관리하며 최소화하고자 하는 나선형 패러다임이 나의 관점과 일치한다고 생각한다. - 소프트웨어 개발 환경은 자동화 시스템(CASE .. 2021. 5. 25.
소프트웨어 개발에 대한 오해와 실체 Preface 2장 부터는 본격적인 소프트웨어 공학에 관한 내용을 배우기 시작했다. 이번 장을 공부하며 한 가지 놀란 점은 소프트웨어를 개발하는 것 보다 유지보수하는 데 더 많은 비용이 든다는 것이다. 내가 재학중인 학교는 작년 1학기 부터 코로나로 인한 비대면 수업을 실시하고 있다. 그런데 온라인 강의가 탑재된 웹사이트가 다운되는 일이 종종 발생한다. 그때마다 나는 "우리 학교는 학생들 등록금을 시스템 업데이트에 안쓰고 어디에 쓰는거야?!"라고 생각하며 웹사이트 관계자들을 마음 속으로 비난했었다. 소프트웨어 유지보수에 사용되는 비용이 만만치 않다는 것을 미리 알았더라면... 그분들도 최대한 노력하고 있다는 것을 이해했더라면... 그래도 아마 온갖 짜증을 내며 욕을 했을 것 같다 ㅎㅎ 또 한가지 새롭게 .. 2021. 5. 24.
시스템 공학과 소프트웨어 공학 Preface 대학교에 입학한 후 교양 수업을 듣던 어느 날 한 가지 궁금증이 떠올랐다. "왜 공대생들은 항상 죽을상일까?" 얼마 전까지 나는 "공대생이 아무리 바쁘다고 해도 같은 대학생들끼리 다르면 얼마나 다르겠어"라고 생각하며 의아함을 느꼈었다. 집에 도착한 택배 상자를 뜯어본 후 모든 일엔 다 이유가 있다는 것을 다시 한 번 느꼈다. 생각했던 것보다 두꺼운 책 속에 다양한 내용이 빼곡히 적혀있었다. 잠시 마음을 추스른 후 "그래도 내가 흥미를 느껴 시작한 공부니까 너무 걱정하지 말자, 재밌을 수도 있잖아?"라고 스스로를 다독이며 첫 장을 공부했다. 역시 사람은 마음가짐이 중요하다. 막상 공부를 시작하자 끝판왕 보스가 기다리고 있을 것이라 걱정했던 마음과 달리 심히 난해한 내용은 없었다. 물론, '심.. 2021. 5. 22.
소프트웨어 공학 에센셜 출처 소프트웨어 공학 에센셜 카테고리에 있는 모든 글들은 윤 청 교수님의 『소프트웨어 공학 에센셜』(생능출판)에서 정리·요약 및 간접인용한 내용임을 밝힙니다. 2021. 5. 21.
(Fin) 개발자, 소프트웨어 교육, 새로운 기술 및 미래의 직업 시장 소프트웨어 개발자가 함양해야 하는 마음가짐, 초·중·고등학교에서 이루어지는 소프트웨어 교육, 코딩을 접목하여 발전시키고 있는 신기술, 미래 직업 시장의 변화에 대해 공부했다. 지난 포스팅에서도 언급하였듯, 최근엔 초등 교육에서부터 기초적인 코딩 기술을 배우고 있다. 이는 가까운 미래에 조기 교육을 받은 인재들이 취업 시장으로 쏟아져 나온다는 것을 의미한다. 그렇기 때문에 나와 같은 비전공자들에겐 코딩 능력과 사고력을 향상시켜 융합적 문제해결자로 거듭날 수 있는 시간이 빠듯하다고 느껴 동기부여가 되었다. 또한, 시간이 지날수록 빠른 속도로 발전하는 AI로 인해 미래의 직업 시장에선 소프트웨어에 대한 지식과 기술이 부족한 사람들은 살아남기 힘들 것이라는 생각이 들었다. - 소프트웨어 교육의 목적은 단지 프로.. 2021. 5. 17.
알고리즘, 순서도, 제어문 알고리즘, 순서도, 제어문에 대한 내용을 공부했다. 알고리즘이란 개념이 코딩에서 중요시되는 이유와 그에 따른 표현 방법, 제어문의 3가지 종류가 무엇인지 알 수 있었다. - 알고리즘 : 어떠한 문제를 해결하기 위한 일련의 절차를 공식화된 형태로 표현하는 것 → 시간적 효율성(수행 시간)과 공간적 효율성(메모리 크기)을 중요시함 - 알고리즘 표현 방법 ① 자연어 : 일상에서 사용하는 언어로 표현하는 방법 ② 의사코드(pseudo code) : 특정 프로그래밍 언어의 문법에 제한받지 않고 간결하게 표현하는 방법 ③ 순서도 : 처리 단위를 약속된 다이어그램 표현 방식으로 나타내는 방법 (간단한 프로그램을 표현할 때 보편적 사용) - 제어문 : 문제 해결을 위한 명령문 ① 순차문 : 코드가 순서대로 한 줄씩 실.. 2021. 5. 16.
컴퓨팅 사고력, 프로그래밍 언어 컴퓨팅 사고력과 프로그래밍 언어의 기본 개념을 공부했다. 컴퓨팅 사고력이란 무엇이며 이 개념이 코딩에서 뿐만 아니라 일상생활에선 어떻게 사용되는지 배웠고, 프로그래밍 언어의 종류엔 어떤 것들이 있는지 알게되었다. 또한, 특정 상황마다 사용하는 프로그래밍 언어가 다르다는 것도 알 수 있었다. 나는 첫 프로그래밍 언어로 Java를 배울 예정이다. - 컴퓨팅 사고력 : 사고력을 적용하여 다양한 분야의 문제를 해결할 수 있는 능력 - ISTE에서 언급한 9가지 컴퓨팅 사고력 ① 자료 수집 : 문제 해결을 위해 자료를 모으는 단계 (입력 처리를 하는 것) ② 자료 분석 : 자료를 분류하고 분석하여 자료의 의미를 찾아가는 단계 ③ 자료 표현 : 분석한 자료의 내용을 표현하는 단계 ④ 문제 분해 : 문제를 작은 단위.. 2021. 5. 16.
코딩의 개념, 코딩이 중요한 이유 코딩이란 무엇이며 최근 세계적으로 코딩을 중요시하는 이유는 무엇인지 살펴보았다. 단지 프로그래밍 언어의 학습이 중요한 것이 아니라 소프트웨어 자체를 이해하고, 그에 따라 논리적·창의적인 해결 방법을 도출해내는 것이 코딩의 완벽한 이해라는 것을 깨달았다. 또, 이미 세계적으로 이슈가 되고 있는 코딩이란 개념에 대해 내가 그동안 너무 무지했다고 느꼈으며, 늦게 시작한 만큼 끊임없는 노력이 필요하다고 생각했다. - 코딩 : 사용자의 명령, 즉 코드를 만드는 과정 - 우리 정부는 논리적 사고력, 창의적 사고력, 문제 분석 능력을 중심으로 한 소프트웨어 교육 방향을 갖고 있다. - 코딩을 한다는 것은 '통합적 문제해결 능력'을 갖추는 것이다. - 코딩의 5단계 ① 이해 : 명령어에 대한 이해 과정 ② 설계(계획).. 2021. 5. 14.