LG U+ Why Not SW CAMP 7기 - 1주차 회고

God menu·2025년 5월 18일
1

<5/13 1일차>

학교가 아닌 이러한 수업에 참여하는 것은 처음이라서 첫날부터 무엇을 배울까 긴장반 설렘반으로 수업을 들으러 갔다. 첫날에는 오리엔테이션 자료를 바탕으로 조도 짜고 조끼리 활동도 해보고 이야기도 많이 나눌 수 있었다. 사실 나도 발표 진짜 못하는데 발표를 맡게 됨 ㅎㅎ

아무튼 첫 날은 기본적인 알고리즘은 무엇이며 코딩이 필요역량이고 팀 빌딩에 대한 내용으로 수업이 이루어졌고 오후에 개구리 게임을 진행하고 이를 바탕으로 순서도를 그리기로 하였다.

머리로는 어떻게 개구리를 이동시키는 지 대충은 알겠는데 이걸 시각적으로 순서도로 표현하는 것이 조금 어려웠다... 강사님의 예시를 듣고 이와는 다르게 내 방식대로 만들어보고 싶었는데 반복되는 조건문과 반복되는 값이 길어지다보니 화살표 방향도 점점 헷갈리고 막혀서 결국 강사님의 설명대로 만드는 것으로 그쳤다.


<5/14 2일차>

2일차에도 개념을 익히는 과정이었다. 크게 시스템 사고와 데이터 리터러시에 대하여 배우는 시간을 가졌다.

셀룰러 오토마타란?

  • 공간과 시간을 이산적으로 다루어 각 셀들의 상태가 국소적인 상호작용에 의해 자동적으로 갱신되며 구체적인 패턴을 도출한다.

쉽게 말해 셀들이 이웃한 셀들과의 관계에 따라 단순한 규칙으로 시간이 지날수록 상태가 바뀌는 모델이다. 이를 학습하기 위하여 여우와 토기로 포식자-먹이 생테계를 보여주는 시뮬레이션을 진행했다.

여우가 토끼를 잡아먹음 -> 토끼 개체 수 감소 -> 여우 굶게 되어서 여우 개체 수 감소 -> 토끼 많이 번식 -> 여우가 토끼 잡아먹음 ··· (계속 반복)

여우도 토끼도 생태계의 균형을 찾는 방법을 계속 시도해보았다. 값을 막 바꿔보고 여러 번 시도한 끝에 이러한 결과를 얻을 수 있었다.

찍기로 맞추기는 했지만 이 동작을 내가 이해하는 것도 공부이기에 여우와 토끼의 변화를 시뮬레이션 하면서 둘 다 공존하는 것을 볼 수 있다. 해당 시뮬레이션 이후에도 Loopy 도구를 활용하여 감자튀김을 주제로 시스템 맵을 그리는 활동을 하였다.

감자튀김 판매량을 첫 중점으로 두고 이후 관련 키워드와 해당 키워드들과의 상관관계를 고려하여 우리 조의 다이어그램을 완성하였다. (결국 좋은 게 좋은 거라고 생각하면 기업이 가장 좋기는 함 ㅎㅎ) 사고하는 것 즉 생각하는 힘을 기를 필요가 있음을 느껴보는 수업이었다.

시스템 사고에 대한 수업 이후에는 데이터 리터러시에 대하여 배웠다. 내가 이 수업을 듣는 이유와 마찬가지로 앞으로 나는 데이터를 읽고 쓸 줄 아는 능력을 가질 것이다.

데이터는 크게 데이터베이스(DB)의 디지털 신호 및 정보로 나타내는 정형데이터와 말, 언어, 이미지, 음성 등으로 나타내는 비정형데이터로 나타낼 수 있다.
데이터를 시각화한 이 이미지를 보면 이상한 점을 발견할 수 있다. 바로 2019년을 건너뛴 것이다. 이런 식으로 오류를 찾아내는 활동을 했는데 틀린그림찾기 하듯이 나름 재미도 있었다. 기본적으로 우리는 데이터를 읽을 줄 알아야 한다. 읽을 줄 알아야 오류를 찾아내고 다른 방식으로 활용할 수 있듯이 기본적인 개념들을 몸에 익히는 것이다. 오류를 찾아내는 것 이후에는 소비 내역 영수증을 보며 어떠한 인물인 지 추측해보는 실습도 하였다. 데이터들 속 반복되는 패턴, 이상치, 상황과 맥락 더불어 도메인 지식까지 갖추어야 한다. 쉬워보이지만 막상 접해보면 마냥 쉽다고 느껴지지 않는다. 강사님께서 데이터를 기획하게 되면 핵심 목표와 방향 설정의 필요성에 대해 언급하시고 평가지표와 선행지표가 중요함을 강조하셨다.

이후 엑셀의 Power Query를 이용하여 데이터 변환하고 열 제거와 변환 등 기본적인 데이터를 다루는 방식에 대해서도 실습을 해보았는데 엑셀이 자꾸 튕기는 현상이 일어나서 불편한 점이 있었다. 이후에는 이렇게 데이터를 다루고 전처리하고 하는 과정들을 파이썬으로 배운다고 하셨는데 불편함을 느꼈던 엑셀보다 빨리 파이썬으로 배우고 싶다.


<5/15 3일차>

나중에 실제 기업에서 프로젝트를 하게 된다면 방법론을 알아야 하고 그 방향대로 프로젝트를 해나갈 줄 알아야 한다. 이때 중요한 것은 결합도는 낮추응집도는 높이는 것이다. 폭포수모델, 프로토타입모델, 나선형모델, 애자일 개발 방법론, XP, 스크럼에 대한 기초 지식을 배우고 회고를 어떻게 서야하는지를 제대로 알 수 있었다. 어제는 그냥 배운 걸 토대로 적었던 것 같은데 회고는 4L (Liked, Learned, Lacked, Longed for) 즉 좋았던 점, 배운 점, 부족했던 점, 바라는 점을 쓰는 것이다.

이날 실습으로는 가설을 수립하고 검증해보는 것을 진행하였다. 버스를 주제로 우리 조의 가설은 '버스 기사들의 안전불감증 때문에 사고가 많이 난다'로 진행하였다. 먼저 데이터를 수집해야한다. 주로 구글에서 버스 수나 사고 비율 등등을 검색하면서 데이터를 모으는 게 쉬워보였지만 막상 해보면 집중력이 많이 필요했다. 나는 팀원들에 비해 탐색하는 속도가 조금 느린 편이고 그때문에 팀 회의하면서 놓친 부분에 대해서 다시 질문하는 게 미안하기도 했다. 내가 느리기는 하지만 시간이 조금 더 충분했으면 꼼꼼히 확인하고 적극적으로 팀 회의에 참여할 수 있을 걸 하는 아쉬움이 남기도 했다. 아래 내용이 우리 조가 버스로 가설 실습한 자료이다.

버스, 택시, 화물차(종류별 버스, 택시, 화물차는 각각 sum해서 하나의 버스, 택시, 화물차로 통칭)의 총 대수와 사고 수, 사업별 차량 사고 비율 등을 2018~2023년 데이터를 모았다. 막대 그래프로 시각화하고 이를 토대로 우리의 가설이 단순 사고율만으로 안전불감증을 단정짓기엔 부족하므로 기각한다는 결론이 나왔으며 발표를 진행하였다. 사실 결과도 그렇고 발표도 그렇고 전체적으로 조금 아쉬움이 남긴 했지만 그래도 이런 실습을 해볼 수 있어서 만족스러웠다.

데이터 과적합은 두 가지로 나뉘는데 데이터의 패턴을 충분히 학습하지 못한 과소적합(Underfitting)과 데이터에 불필요한 잡음까지 과하게 학습한 과대적합(Overfitting)이 있다. 과소적합은 데이터의 양을 증가시키고 더 다양한 특성을 추가하거나 더 복잡한 모델을 사용하는 등의 해결 방법이 있다. 과대적합은 잡음을 제거하고 모델 단순화 또는 정규화하거나 훈련/검증 데이터 분리를 철저히 수행하는 등의 해결 방법이 있다. 과대적합의 경우가 과소적합보다 해결하는 데 더 어렵다고 한다.

학교다닐 때 전공수업으로 머신러닝에 대해서 배운 적이 있는데 잊고 있던 과적합 개념을 상기시킬 수 있었고 앞으로 파이썬으로 전처리도 하고 시각화하는 것을 배울 예정인데 이것도 전공수업 때 내용을 어렴풋 기억하고 있어서 빨리 배우고 싶다.


<5/16 4일차>

우리가 프로젝트를 시작하게 되면 팀 내에서 역할을 PM, 디자이너, 기획자, 개발자로 나뉠 예정이다. IT 서비스가 기획되고 운영되기까지 전반적으로 어떤 역할들이 필요한지 보여주는 구조로 설명해주셨다.

  1. 컨설팅 : 무엇을 만들지 가이드하고 설계한다.
  2. 감리 : IT 프로젝트가 정상적으로 잘 진행되고 있는지 감시하고 평가한다.
  3. 시스템관리 : 프로그램이 동작중인 서버에 문제가 생기지 않도록 관리하고 운영한다. 예시로 회사의 웹사이트가 24시간 문제 없이 돌아가도록 서버를 관리하는 것이다.
  4. IT보안 : 정보가 저장되거나 네트워크를 통해서 이동될 때, 이 정보를 보호한다. 해킹, 바이러스, 내부 유출 등으로부터 보호해야 하므로 중요하다.
  5. IT영업/마케팅 : IT 제품이나 서비스, 프로그램을 많은 기업과 고객에게 판매하고 홍보한다.
  6. 유지보수 : 시스템이 구축된 후 계속 잘 작동하게 고치고 업데이트한다.

나중에 내가 취업하게 되면 어떤 역할을 맡을지, 어떤 업무를 하게될지는 잘 모르겠지만 이 수업을 마칠 시점에는 내가 원하는 직무의 확신성을 가지게 되면 좋을 것 같다.

모바일웹과 웹앱의 비교

모바일웹은 풀브라우저(Full Browser) 방식이다. 풀브라우저 방식은 새로운 페이지로 이동할 때마다 전체 페이지를 새로 불러오는 방식이다. 매번 전체 페이지를 다시 로딩해야 해서 데이터 양이 많아지면 느려질 수 있는 단점이 있다.
웹앱은 단일 페이지(Single Page Application, SPA) 방식이다. 이 방식은 최초 접속 시 페이지 전체를 한 번 불러오고, 이후에는 필요한 부분만 동적으로 변경하는 방식이다. 첫 로딩이 상대적으로 느리다는 단점이 있다.

개발 프로세스는 보통 기획-요구사항-디자인-설계-구현-테스트-배포의 구조이고 분석 프로세스는 기획-수집-전처리-분석-시각화-문제해결의 구조를 따른다. 이 역시 수업에 참여하여 배우면서 내가 어떤 부분을 잘 할수 있는지 알게 되면 좋을 것 같다.

소프트웨어

소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있으며, 각각은 서로 다른 목적과 기능을 가지고 있다.
시스템 소프트웨어는 하드웨어와 소프트웨어 사이의 중간 관리자 역할이다. 컴퓨터를 부팅하고 자원을 관리하는 즉 컴퓨터의 기본적인 동작을 담당한다.
응용 소프트웨어는 사용자가 원하는 특정 작업을 수행하고 시스템 소프트웨어 위에서 실행된다. 웹 브라우저(Chrome, Edge 등)나 워드 프로세서 등이 있다.

컴퓨터 운영체제(Operating System, OS)는 컴퓨터 하드웨어를 관리하고, 응용 프로그램들이 동작할 수 있는 환경을 제공하는 시스템 소프트웨어이다. 예시로 우리가 잘 아는 운영체제로는 MacOS, Linux, Windows, Android, iOS 등이 있다.

이후 파일과 디렉토리에 대해서도 설명해주셨는데 학부 때 전공수업 때 들었던 내용이 상기되었다. cmd 창을 열고 디렉토리와 파일 생성하고 삭제하고 파일 카피와 이동하는 실습을 하였다.

4일차는 팀 활동은 없었고 주로 이론 설명으로 이루어졌다. 오랜 시간동안 한꺼번에 많은 개념을 듣다 보니 조금씩 놓치는 부분도 있었지만 강사님께서 잘 모르는 키워드를 적어보라고 하신 후 해당 내용에 대해서 더 자세하게 설명해주셔서 집중할 수 있었다.


첫 주는 4일동안 기본적인 개념들과 팀 활동 위주로 했던 것 같다. 앞으로는 더 어려운 내용도 알아야 하고 코딩도 해야하니 아직 걱정이 남아 있지만 이 또한 내가 해나가야 하니 걱정을 줄여야겠다. 시설도 괜찮고 집에서도 다닐 만하고 전반적으로 만족스럽게 다니고 있다. 이렇게 벨로그와 노션으로 회고를 작성하는 것이 처음인데 점점 익숙해져야겠다.

0개의 댓글