Main Subject
WebAPI ServerASP.NET CoreMain Subject
  • 과제 개요
  • 추가 학습
    • 샤딩 Sharding
    • Scale out / Scale up
    • 로드밸런싱
    • WSL
  • 구현
    • 계정생성
    • 로그인
    • 권한 확인(미들웨어)
    • 공지 등록 및 전송
    • 우편함
    • 출석부
    • 인앱 결제 아이템 지급
    • 강화
    • 던전 스테이지
  • DB 설계
    • MySQL
    • Redis
  • Coding Conventions
  • [회고]
    • 마음가짐
    • 1주차
    • 2주차
    • 3주차
    • 4주차
    • [5주차]
    • 마치며
Powered by GitBook
On this page
  • 컴투스 서버캠퍼스에 대해
  • 좋았던 점
  • 아쉬웠던 점
  • 어려웠던 점
  • 성장한 점
  • 이제야 깨달은 것
  • 앞으로 나에게 필요한 것
  • 더 하고 싶은 것들
  1. [회고]

마치며

컴투스 서버캠퍼스에 대해

좋았던 점

  • 사실상 게임 분야에 입문한거나 마찬가지인데 많은 재미있었다. 게임을 상상하면서 서버를 만드는 것이 재미있었다. 앞으로 계속 게임 서버 분야에 있어도 좋을 것 같다.

  • 현업에서 시선과 관점을 알 수 있었던 것이 좋았다. 개발하면서 실제 있었던 일화들을 설명해주셔서 재미있게 들었던 부분도 있었다.

  • 아낌없는 지원이 좋았다. 스터디룸에 모니터로 갖다주시고, 학습할 수 있는 책을 구매해서 주셨다. 또, 배포도 해볼 수 있게 라즈베리파이를 제공해주시기도 했다. 그리고 가장 좋았던 것은, 이런 것들을 요청하기 전에 미리 필요를 알고 제공해주셨던 것이다.

  • 작년에 인턴으로 들어와 신입사원으로 일하고 있는 선배와의 만남, 데이터 팀장님과의 멘토링 시간도 너무 좋았다. 비전공자라서 현업자 지인이 없기 때문에, 실제 업무할 때 어떤 일을 하는지가 가장 궁금하다. 그런 것들을 풀어낼 수 있고, 취업을 준비할 때 어떤 것들을 준비하면 좋을지도 알 수 있어서 좋았다.

  • 밥을 주는 것도 너무 좋았다. 삼시세끼 다 지원해준 것도 좋았는데 맛도 매우 훌륭해서 좋았다. 사실 지원금은 없어도 왔을 것 같다.

아쉬웠던 점

  • 교육생 중 과정에 100% 집중할 수 없는 환경의 학생들이 있어서 아쉬웠다. 같이 충분히 고민하고 같이 으쌰으쌰하고 싶었는데, 11명 중 4~5명 정도만 스터디룸에 나와서 학습했다. 하지만 여건상 스터디룸에 오지 못했던 교육생들이었기에 그냥 아쉬움으로 남을 뿐이다.

  • 시간과 능력이 있었으면 간단한 클라이언트도 만들어봤으면 좋았을텐데 하는 아쉬움이 있다. 주어진 과제에 욕심을 살짝 내려놓고 효율적으로 구현할 걸 그랬다. 그리고 클라이언트를 시도해볼 걸 그랬다.

어려웠던 점

  • 처음엔 ASP.Net Core, Mysql, Redis 사용이 서툴러서 헤맸다. 그래도 문서들을 충분히 뒤져보고, 다른 교육생들이랑 같이 얘기하고 연구해보면서 학습하며 잘 해결해갔다.

  • 프레임워크랑 라이브러리를 사용하는 것도 어려움이 좀 있었다. 그냥 쓰면 동작은 하는데, 내부에서 어떻게 돌아가는지 모르겠어서 머리에 그림이 안그려졌다. 그래서 sql kata는 깃헙 들어가서 소스코드도 좀 열어봤는데, 여전히 다 이해되진 않았다.

  • 이름짓기도 꽤 어려웠다. 이름 짓는것 자체가 어렵다기 보다는 실무에서 통상적으로 쓰는 단어들을 잘 몰라서 어려웠다. 오픈소스들을 좀 열어보면서 그런 힌트를 얻어봐도 좋을 것 같다.

성장한 점

  • 객체 지향 : 객체지향이 뭘 지향한다는 건지, 각각의 객체들을 어떻게 설계하고 구현해서 사용해야하는지 잘 이해가 안갔다. 이번에 프레임워크에 맞춰서 설께하고 프로그래밍 하다보니 이해가 됐다. 모델, 서비스, 컨트롤러 등 각각의 역할에 맞게 class를 설계하고 구현해서 사용하다보니, 아 이런게 객체지향이구나 하는 느낌이 왔다.

  • 프레임워크, library 사용 경험 : 지금까지는 프로그래밍 해보면서 프레임워크를 사용해본 적이 없고, Library도 표준외의 것들을 써본적이 없다. 그리고 이렇게까지 레퍼런스가 협소한 라이브러리는 더더욱 쉽지 않았다. 그래도 사용해보고 뜯어보면서 이런게 프레임워크고 libarary이구나 하는 것을 느꼈다.

  • DataBase 사용 경험 : DataBase의 스키마를 직접 설계한 것, 내가 만든 프로그램이랑 DataBases랑 연결을 맺어 정보를 주고 받는 것을 처음해봤다. 기업에서 하는 서비스에 비하면 아주 간단한 연결들이겠지만, 나에게는 매우 값진 경험이었다. 앞으로 데이터베이스에 대해 더 많이 학습해봐야겠다.

  • 좋은 코드 : 좋은 코드, 클린코드가 무엇인지에 대해 고민하고 적용해봤다. 그 결과로, 3주차 코드리뷰 때 “저번보다 보기 좋아졌다”는 칭찬의 피드백을 받을 수 있었다. 그리고 포트폴리오 때문에 내가 예전에 짰던 코드를 꺼내봤는데,,, 정말… 지금은 많이 좋아진 것 같다 ㅎㅎ 앞으로도 좋은 코드에 대해서 계속해서 고민하고, 관련 자료와 책을 찾아봐야겠다.

이제야 깨달은 것

  • 왜 이렇게 구현했어요?

    • 실장님이 코드리뷰 해주실 때, 왜 이렇게 구현했냐는 물음에 대해 오해했다. 지금 나는 배우는 입장이고 게임 도메인에 대해서도 모르고 실제 서비스와 가까운 프로그래밍을 해본 것이 처음이었다. 그래서 내가 했던 것들이 다 맞다는 확신은 없었다. 그래서 실장님이 왜 이렇게 구현했냐고 하신 말씀이 “내가 틀렸고, 그렇게 하면 안된다”는 말씀으로 생각해버렸다. 근데 실장님이 이런 질문에 가만이 있으면 안된다고 하시면서 조언을 해주셨다. 왜 이렇게 구현했냐는 물음은 나의 생각과 구현의 근거를 묻는 거였다. 처음부터 내가 틀렸다고 생각하지 말고, 내 생각을 충분히 말씀 드릴걸 그랬다.

  • 욕심은 좀 더 나중에 부릴 걸

    • 이번 서버캠퍼스에서의 가장 큰 목표는 “성장”이었다. 그래서 제시된 기획안을 한 단계 더 발전시켜서 구현해봤다. 그래서 시간이 좀 더 걸리고 이런 저런 시행착오도 있었던 것 같다. 그리고, 내 마음대로 발전시킨 기획안 내용은 나 혼자만의 것으로 공유가 안되어 있었기 때문에, 코드리뷰 해주시는 실장님 입장에서는 정확한 리뷰를 해주실 수 없게 된 것이었다. 일단 주어진대로만 최대한 간단하게 만들고, 그 이후에 덧붙여볼 걸 하는 생각이 들었다.

  • 시간을 들여서 winform으로라도 클라이언트를 만들어볼걸

    • 내가 만든 api가 제대로 동작하는지 확인하기 위해서 postman으로 http 요청을 주고 받았다. 그렇게 할 때 route를 써주고 그에 맞는 body data를 넣어주는 시간들이 꽤나 오래 걸렸다. 테스트 할 때 소모된 시간들을 모았다면 winform으로 간단하게는 만들 수 있었을 것 같다는 생각을 했다.

앞으로 나에게 필요한 것

  • 경험

    • 설계를 잘못해서 전체를 뒤집고, 시간이 오래 걸린 이유는 결국 경험이 부족해서인 것 같다는 생각을 했다. 교육 과정 중에 많이 들었던 피드백 중 하나는 “통상적으로 이렇게 하지 않는다”는 말이다. 게임 서버를 잘 몰랐고, 아직 통상적인게 무엇인지 몰라서 자잘한 어려움들이 있었던 것 같다. 앞으로 경험을 쌓으면서

  • 내 생각을 충분히 말할 수 있는 자신감

    • 코드리뷰 받을 때, 실장님 앞에서 왜 이렇게 작아졌는지 모르겠다… 충분히 생각하고 고려해서 짠 코드고 내가 만들 코드들이니, 자신감을 갖고 내 주장을 충분히 말하자. 아무 생각 없이 짠 코드가 아니니, 자신감을 갖고 틀리더라도 나의 주관을 확실하게 전달하자.

더 하고 싶은 것들

  • 여러 머신으로 쪼개보기

    • mysql 머신, redis 머신, WebAPI 머신, 접근하는 클라이언트 머신을 따로따로 돌려보고 싶다.

  • 유닛 테스트

    • 유닛테스트를 현업에서 어떤식으로 한다고 말씀을 듣긴 했는데, 정확하게 이해하지 못했다. 관련하여 내용을 찾아보고 시도해봐야겠다.

  • 클라이언트

    • WebAPI 서버를 구현했는데, 기능 테스트를 단순히 postman으로 밖에 못하고 있다. route과 request body를 그때그때 수동으로 설정해주면서 테스트를 해서 매우 어려웠다. 내가 만든 게임 서버가 잘 동작한다는 것을 보여줄 수 있을 정도의 클라이언트는 만들어보자

  • 데이터베이스 공부

    • 아직은 데이터베이스를 제대로 학습해본적이 없다. 이번에 개발해보면서 데이터베이스의 중요성을 크게 느꼈으니 데이터베이스를 충분히 공부해보자. (키워드 : 설계, 인덱스, 세컨더리 인덱스, 조인, 어떻게 동작하는지, 엔진별 차이, 실행계획 등)

Previous[5주차]

Last updated 2 years ago