2022 동계 모각소 

샹그릴라 활동 내용 및 발표 자료

<팀원>

사이버보안학과 최경주

사이버보안학과 김민규

사이버보안학과 김우성

사이버보안학과 최준태


<팀원별 활동내용>

최경주

1. 매 주차마다 2022 EMNLP에 기재된 논문을 읽고 이를 Notion에 정리하고 리뷰

2. 챗봇 구현을 위해 AI Hub의 한국어 SNS 데이터를 활용하였으며, Colab 개발 환경에서 데이터 전처리와 토큰화, 라벨링을 진행

3. 모델을 학습하기 위해 GPU를 사용하여 돌렸으나, 장치 문제로 인해 학습하는데 많은 시간이 소요되고 원하는 결과가 나오지 않게 되어 잠시 중단

김민규

1주차: 객체 지향 언어 복습, jetpack compose를 활용하는 앱 개발 방식 선택

2주차: 앱 레이아웃 구성, 행렬을 활용한 고정된 화면에 이미지, 텍스트 제공

3주차: 사용자와 상호작용하는 앱 구성

4주차: 여러 컬렉션을 정리함, 코딩테스트를 코틀린으로 공부

5주차: 컬렉션 고차함수 활용, jetpack compose로 스크롤 가능한 앱 구현, 해킹 공부 시작

김우성

1주차

TS에 기초에 대해서 공부할 수 있었다. 이론적으로는 TS를 왜 쓰는지 이해가 되지만 생각보다 진입장벽이 있어서 고생 중이다. 

JS로는 금방 끝나는 작업이 타입을 명시하느라 시간이 훨씬 많이 걸리고 있다. 물론 프로젝트의 크기가 커지면 그 때는 TS의 장점이 더욱 명확 해 질 것이라고 생각한다. 

다만 아직 익숙하지가 않아 좀 더 시간이 필요할 듯하다.

2주차

React 공식 홈페이지에서 튜토리얼을 전부 읽어 보았다. 

React에서 UI를 구성하는 단위인 컴포넌트가 어떤 순서로 만들어지는지 알게 되었다. 

또한, React를 외부 환경과 어떻게 연동해야 하는지에 대해서도 배우게 되었다. React를 왜 쓰는지 어떠한 상황에서 React가 빛을 발하는지 대략적으로 감을 잡게 되었다. 

하지만, 아직 익숙하지 않아 더 많은 예시 코드를 보면서 학습을 해야 할 것 같다.

3주차

프로젝트의 청사진을 그리고 본격적으로 개발에 들어갔다. 직접 프로젝트에 들어가니 생각했던 것 보다 시간이 훨씬 소요되었다. 

다만, 직접 무언가를 만들면서 버그를 발견하고 해결하는 과정이 능력 향상에 많은 도움이 되는 것 같다.

4주차 

일단 초기 구상한 프로젝트 기능들은 완성되었다. 이제는 아래 리스트에 있는 추가 기능들을 작업해 보려고 한다. 

현재까지는 첫 번째 리스트인 "댓글 닫기"기능은 완성한 상태이다. 이제 AWS를 좀 더 공부해서 실 배포하는 과정을 진행해 보려고 한다. 

현재 계획은 Frontend 쪽은 AWS amplify라는 서비스를 사용하고 Crawling을 담당하는 Backend 쪽은 AWS EC2를 사용할 생각이다. 

5주차 

2달간 진행한 프로젝트가 끝이 났다. 2달이 적은 시간은 아니지만 원래부터 알던 개념이 아닌 새로운 기술과 개념을 학습해 무언가를 만드는 데는 촉박한 시간 이였다. 

하지만, 프로젝트를 직접 하면서 적지 않은 경험을 했다. 지금 와서 돌이켜보면 단순한 버그를 가지고 하루 종일 붙잡기도 하였다. 

나는 이러한 경험들이 모여서 나의 개발 능력에 도움이 될 것이라 확신하다. 이제 만약 다른 프로젝트에 참여하게 된다면 지금보다 더 나은 퍼포먼스로 개발에 임할 수 있을 것이다.

최준태

1. 매 주차 로그인 및 회원가입 구현&웹 크롤링 한 내용을 보여주는 앱을 만들기 위해 매주 프로젝트 진행 및 진행현황 발표

2. 크롤링을 구현하기 위해 Jsoup을 사용했으며, 크롤링한 내용을 RecyclerView로 구현

3. Firebase와 KakaoAPI를 활용해 로그인 및 회원가입 기능을 구현


<팀원별 최종성과>

최경주

1.  챗봇 구현을 중단하게 되어 읽는 논문을 늘리고 주차 별로 2회씩 리뷰하면서 논문을 읽는 방식에 대해 적응할 수 있었으며, 

     다른 학회의 논문들도 읽어보면서 여러 연구들을 접해보는 기회가 되었음.

2. 비록 챗봇을 완벽하게 구현하지 못했으나, 데이터에 대한 EDA, 전처리 등을 통해 데이터 분석의 개요 및 학습에 도움이 되었으며, 

    데이터의 시각화에 대한 공부가 부족하다는 것을 알게 되고 기초부터 다시 배우게 됨.

김민규

팀장에게 물어본 논문 선택 방식을 통해 해킹 공부에 관심이 있어진 만큼 보안 분야에서도 여러 분야로 나뉨에 따라 관심 분야를 선택하기 위해 좋은 논문을 읽어보려고 함. 

안드로이드 앱 개발 공부를 하면서 프론트엔드 개발에 흥미를 느낌.

김우성

웹 서비스의 전반적인 흐름에 대해서 이해하는 경험이 되었다. React의 핵심 개념들과 동작원리에 대해 이해할 수 있었으며 크롤링이라는 개념도 처음으로 익히게 되었다. 

단순히 프로젝트를 만들어서 내 컴퓨터에서 동작하는 것에서 그치지 않고 AWS에 실배포를 함으로써 클라우드 서비스에 대한 지식도 얻게 되었다. 

비록 작은 프로젝트지만 많은 경험을 하고 지식을 쌓을 수 있는 좋은 기회였다.

최준태

1. 로그인 기능을 구현하며 authentication 방식과 Token 방식을 알게 되었고 이를 활용해 로그인 기능을 구현

2. BottomNavigation 형식을 사용하며 Fragment에 대해 학습

3. Jsoup을 활용하며 오픈소스를 활용하는 법에 대해 학습

4. 크롤링한 데이터를 스크롤 형식으로 구현하기 위해 RecyclerView에 대해 학습 및 구현

5. 크롤링 기능을 구현하기 위해 안드로이드에서 비동기 방식을 활용하는 법인 coroutine에 대해 학습 및 구현


<팀원별 향후계획>

최경주

1. 논문 리뷰를 하면서 연구 분야에 대한 지식을 늘리게 되었기에 앞으로도 매 주마다 논문을 읽고 이를 Notion이나 github에 정리해보려고 함.

2. 구현하지 못했던 챗봇 제작을 마무리하고, 데이터 분석에 대한 중요성을 알게 되어 Kaggle이나 Dacon에 있는 대회에 참여 해보려고 함.

김민규

현재 하고 있는 안드로이드 jetpack compose를 학기 중에도 꾸준히 함으로써 프론트엔드를 공부, 데이터베이스 학습을 통해 벡엔드 공부를 병행

김우성

우선 AWS를 사용해서 최종적인 배포까지 하는데 성공했다. 하지만, 문제가 발생했는데 로컬에서 작동할 때에 비해서 속도가 매우 떨어진 것이다. 

아무래도 한 컴퓨터에서 FE, BE이 같이 동작 하는게 아닌 각각의 환경에서 분리되어 REST API로 통신을 하기 때문에 느려진 것이라 추측된다. 

또한 HTTPS를 적용하기 위해 FE와 BE사이에 ALB를 둔 것도 원인 중 하나라고 생각된다. 현재 계획은 크롤링을 매번 하는 것이 아니라 크롤링 미리 해서 DB에 저장해 두는 것이다. 

현재는 DB를 사용하고 있지 않고 매번 네이버 웹툰 사이트에 접속해 원하는 데이터를 가져오는 방식이다. 

BE에서 네이버 웹툰 홈페이지가 아닌 DB에 접속해서 데이터를 가져오고 해당 DB는 Batch를 사용해서 24시간 마다 네이버 웹툰의 정보와 일치하도록 동기화를 할 생각이다. 

물론 이렇게 하게 되면 실시간 정보를 얻을 수 없다는 단점이 생기지만 속도는 향상될 것으로 예상된다.

최준태

1. RecyclerView에서 item을 클릭하면 item의 상세 페이지를 열어주는 기능을 구현할 계획

2. 이후 찜기능이나 프로필 설정, 커뮤니티 생성 등 다양한 기능을 구현할 계획


<발표자료>