반응형 전체 글305 소프트웨어 테스트 Preface 오늘은 실무 현장에 있는 친구를 만나 지난 포스팅에서 작성했던 '코드 검사와 테스트를 분리하는 이유'와 더불어 '테스트 기준들이 모호한데, 현업에선 주로 어떤 테스트 케이스를 사용하는가?'에 관한 질문을 했다. 답변은 의외로 간단했다. 코드 검사는 말 그대로 코드 자체의 오류를 검사하는 것이며, 테스트는 소프트웨어의 성능을 전반적으로 테스트하는 개념이라는 것이다. 또한, 특정 테스트 케이스를 주로 사용한다기 보단 상황에 맞는 다양한 테스트 케이스를 사용한다고 한다. cf. 리팩토링과 코드 검사에 대해서도 생각해 보았는데, 리팩토링은 코드를 이해하기 쉽게 수정하는 활동이므로 코드 검사와는 다른 개념인 것 같다. 1. 소프트웨어 테스트 개요 및 목적 - 테스트 : 시스템이 정해진 요구사항을 만.. 2021. 6. 26. 프로그래밍과 코드 검사 Preface 이번 장에선 코드 검사에 대해 공부했으며, 다음 장에선 테스트(시험)에 관한 내용이 나온다. 언뜻 봐도 비슷한 코드 검사와 시험을 굳이 분리하여 시행하는 이유는 무엇일까? 코드 검사에선 단지 오류를 발견할 뿐, 해결 방법을 찾는 과정은 생락한다고 한다. 또한, 코드 검사에선 발견된 오류를 개인의 업무 수행 능력 평가에 반영하지 않지만, 시험의 결과는 그 반대라고 한다. 아직 시험에 관한 내용을 학습하지 않아 단정지을 순 없지만, 지금까지의 내용을 바탕으로 고민한 결과 두 단계를 별도로 시행하는 이유는 '더욱 향상된 품질의 소프트웨어 개발 및 개인의 업무 수행 능력 향상 촉진'일 것이라 생각한다. 1. 프로그래밍 - 설계 문서에 나타난 결과를 구체화시켜 프로그래밍 언어로 바꾸는 것이다. - .. 2021. 6. 24. 사용자 인터페이스 설계와 상세 설계 Preface 객체지향 인터페이스 도구 부분을 공부하던 도중 궁금증이 생겼다. "구조적 프로그래밍과 객체지향 프로그래밍의 차이점은 무엇일까?" 나는 두 방식 모두 프로그래밍을 쉽고 빠르게 처리하기 위한 것이며, 특히 객체지향 프로그래밍은 객체(object)를 중심으로 설계한다는 것 정도만 알고있을 뿐, 자세한 차이점에 대해선 설명할 수 없었다. 정확한 해답을 얻고자 검색 엔진을 통해 조사한 결과 한 블로그를 통해 구조적 프로그래밍은 데이터와 데이터 처리 방식을 분리한 방식이고, 객체지향 프로그래밍은 데이터와 데이터 처리 방식을 통합한 것이라는 사실을 알게되었다. 그러나 조금만 생각을 해보니 객체를 중심으로 설계한다는 것과 데이터 처리 방식을 통합한다는 것이 사실 같은 맥락이라는 것을 알 수 있었다. 책상.. 2021. 6. 24. 생활코딩 생활코딩 (opentutorials.org) 생활코딩 hello world 생활코딩의 세계에 오신 것을 환영합니다. 생활코딩은 일반인들에게 프로그래밍을 알려주는 무료 온라인, 오프라인 수업입니다. 어떻게 공부할 것인가를 생각해보기 전에 왜 프로그 opentutorials.org 프로그래밍 무료 학습 사이트 2021. 6. 23. TCP School 코딩의 시작, TCP School 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 프로그래밍 언어 무료 학습 사이트 2021. 6. 22. 디자인 패턴 Preface 이번 장에선 복잡한 구조의 설계를 보다 쉽게 수행할 수 있도록 돕는 디자인 패턴에 대해 공부했다. 사전적 정의는 앞서 말한 것처럼 '보다 쉬운 설계를 위한 하나의 도구'라고 할 수 있지만, 이 도구가 과연 초보 개발자들에게도 유용할까? 나는 오히려 반대라고 생각한다. 만약 프로그래밍의 기초 단계만 알고 있는 초보 개발자들이 패턴을 사용하여 코딩을 하게 되면 수정하고 싶은 부분을 찾거나 원하는 출력물을 얻는 것이 오히려 복잡하게 느껴지지 않을까? 즉, 디자인 패턴을 유용하게 사용하기 위해선 어느 정도의 개발 지식과 코딩 실력이 필수적이며, 많은 경험을 필요로 한다고 생각한다. - 패턴 : 자주 발생되는 문제들을 해결하고자 할 때 일정하게 반복되는 솔루션 - 무아레 패턴(moire patter.. 2021. 6. 22. 자료 흐름 중심 설계와 데이터베이스 설계 Preface 이번 장에선 관계형 모델, 즉 관계형 테이블에 대해 공부했다. 그러나 아무리 생각해봐도 관계형 테이블을 사용하는 이유를 이해할 수 없었다. 내가 만약 실무자라면, 복잡한 관계형 테이블 대신 한눈에 들어오는 ER 모델을 선호할 것 같다는 생각이 들었다. 물론 ER 모델은 각 엔티티 타입의 세부 사항까지는 나타낼 수 없지만, 자료사전을 통해 필요한 부분의 내용을 발췌하여 사용할 수 있다. 또한, ER 모델 대신 클래스 다이어그램을 통해 세부 속성을 표현할 수도 있다. 특정 개념·도구의 사용 이유를 이해하기 위해선 다양한 시각(관점)에서의 정보가 필요한 것 같다. 1. 자료 흐름 중심 설계 - 구조적 분석의 결과를 구조적 설계로 옮기는 과정이다. - 자료 흐름 중심 설계(DFD : Data Fl.. 2021. 6. 21. 소프트웨어 설계 기법 Preface 이번 장은 프로그래밍 언어와 연관지어 이해해야 하는 개념이 생각보다 많았다. 운영체제와 자료구조, 프로그래밍 언어 등을 병행하지 않고 오로지 소프트웨어 공학만 공부하는 나에게 있어 관련 지식을 필요로 하는 개념들은 이해하기 쉽지 않았고 큰 스트레스로 다가왔다. 개발 지식을 독학하며 한 가지 느낀 점은 대학교에서 각 학기마다 전공 필수 교과목을 지정하여 수강하게 하는 이유가 있다는 것이다. 그렇기에 현재 상황에서 내가 내린 최선의 결론은 유튜브를 통해 프로그래밍 언어 공부를 병행하는 것이다. 소프트웨어 공학과 운영체제, 자료구조 공부를 마친 후 본격적으로 프로그래밍 언어를 학습할 계획이므로 체계적으로 시작하는 것이 아닌, 기본 틀을 잡는다는 생각으로 조금씩 접하다보면 이론 공부에 분명 도움이.. 2021. 6. 18. 유스케이스와 UML Preface 이번 장에선 각종 다이어그램을 통해 인터넷 쇼핑몰 사이트 구현 방법을 알아보았다. 실무에서 사용될 법한 예시들을 하나하나 자세히 살펴보며 공부하다보니 내가 실제로 하나의 웹사이트를 구축하고 있는 것 같다는 느낌이 들어 뿌듯했지만, 한 가지 의아한 부분이 있었다. 바로 '관리자의 온라인 입금 내역 확인' 부분이다. 해당 책에선 관리자가 직접 사용자의 주문에 따른 입금 내역을 확인한다고 서술되어 있다. 나 역시 직접 인터넷 쇼핑몰을 이용하며 결제를 완료한 후 일정 시간이 지나야 '입금 대기' 상태가 '결제 완료' 상태로 바뀌는 것을 확인한 경험이 있기 때문에 처음엔 대수롭지 않게 여겼다. 그러나 생각할수록 입금 내역 확인을 시스템이 아닌, 관리자가 직접 한다는 것을 이해할 수 없었다. 만약 복.. 2021. 6. 15. 객체지향 분석 기법 Preface 이번 주는 기말고사 기간이라 소프트웨어 공학 공부에 집중하지 못했다. 다음주 월요일 시험을 마지막으로 이번 학기가 종료됨에 따라 개발 공부에 박차를 가할 예정이다. 어제는 학습에 도움을 주는 친구와 함께 공부 및 블로그 업로딩의 방향성에 관한 이야기를 했다. 친구는 내가 지금껏 공부했던 내용들이 이후 더욱 정확한 정보로 대체될 수 있도록 항상 오픈 마인드를 유지해야 하며, 단지 기계적으로 내용을 암기하는 것이 아닌, '왜 그럴까?'라는 생각을 바탕으로 공부하는 자세가 필요하다고 거듭 충고했다. 개발 공부에 도전하기로 마음먹은 뒤, 처음으로 친구에게 이 이야기를 들었을 땐 "초등학교 입학 이후로 대학교 4학년을 바라보는 지금껏 줄곧 수능공부 식으로 공부했던 나에게 있어 'Why?'라는 질문을.. 2021. 6. 12. Bertayal BETRAYAL Part A. 작가 소개 : Harold Pinter는 영국 극작가로 1930년 10월 10일 London의 Hackney에서 출생하여 2008년 12월 24일 사망하였다. 그는 보통의 형식적인 극을 해체한 극인 부조리극(반극)을 주로 썼으며, 그의 작품엔 대부분 ‘위협’이라는 알 수 없는 압박이 존재한다. 이러한 특징은 그의 작품 속에서 쉽게 찾아볼 수 있는데, 먼저 “The Room’에서는 전체적인 분위기와 의사소통의 실패 등으로 나타나며, ”The Birthday Party“에서는 특정 인물을 통해 나타난다. 마지막으로 이번 주제인 ”Betrayal“에서는 작품의 제목, 즉 배신을 통해 ‘위협’과 ‘불안’을 인지할 수 있다. 그의 작품에서 나타나는 특징은 이뿐만이 아니다. 그는 작품.. 2021. 6. 11. 정보 모델링 Preface 정보의 양이 경쟁력이던 시대는 이미 지났다. 지금은 올바른 정보를 추출하여 사용하는 능력, 즉 정보 변별력을 중요시하는 세상이다. 내가 1학년 때 호기심으로 들었던 한 공대 교양 수업의 교수님께서 하신 말씀이다. 당시에는 별 생각 없이 넘어갔었지만, 소프트웨어 공학을 배우며, 올바른 정보를 선택하여 사용하는 것이 특정 프로젝트에 얼마나 큰 영향을 미치는지 고민해 볼 수 있었다. 또한, 얼마 전 Q&A란에 엔티티에 관한 질문을 올렸었는데, 이번 장을 통해 엔티티의 정의와 대략적인 사용 방향을 알게 되었다. - 정보 모델 : 정보 데이터를 중심으로 시스템의 정적인 정보 구조를 나타냄 - 정보 모델링 : 엔티티(개체)들을 정의하고, 이들 사이의 연관성을 규명하는 것 - 정보(information.. 2021. 6. 5. 동적 모델링 Preface 이번 장은 이전의 내용들 보다 많은 시간이 소요됐다. 다양한 표들의 작성 방법을 익히고 각각의 차이점을 이해하는 것이 생각보다 어렵고 복잡했다. 항상 학습에 피드백을 주는 친구는 나의 하소연을 들은 후 pm을 계획하는 것이 아니라면 해당 개념 전체를 이해하려고 하기 보단 단순히 훑어보는 식으로 보는 것이 좋다고 말했다. 그러나 무슨 일이든 꼼꼼히 하고자 하는 성격 탓에 괜한 오기가 생겨 불필요한 스트레스를 받는 것 같다. 이번 일을 계기로 모든 일을 완벽히 처리하고자 하는 성격을 버리고 나에게 꼭 필요한 것들의 우선순위를 정하여 효율적이고 생산적으로 업무를 처리할 수 있는 사람으로 성장하고자 한다. 마지막으로 시간이 지나 간단한 웹사이트 혹은 어플리케이션을 구현할 수 있는 단계에 오른다면 .. 2021. 6. 3. 기능 모델링 Preface 시작은 미비하지만 끝은 창대하리라 소프트웨어 공학을 공부하다 보면, 소프트웨어 개발 과정이 생각보다 매우 체계적으로 정립되어 있다는 것을 느낄 수 있다. 각 단계의 상세한 설계부터 시작하여 그로부터 파생되는 세부적인 사항까지, 현재 나의 지식 수준으로 생각해 볼 만한 단계는 전부 기술되어 있다. 그러나 실무 현장에 있는 친구의 말을 들어보면, 언제나 예상치 못한 상황이 발생할 수 있으므로, 학문적 지식과 더불어 창의적 아이디어를 통한 문제 해결 능력을 겸비하는 것이 필요하다고 한다. 비록 지금은 기초 공사를 진행중인 단계이지만, 하루 빨리 개발자로서 실무 현장에 뛰어들어 친구의 말을 100% 이해할 수 있는 날이 오길... - 기능(프로세스) : 입력물을 받아 결과물을 내는 활동 - 구조적.. 2021. 6. 2. 이전 1 ··· 17 18 19 20 21 22 다음