코드 훔쳐보는 변태 코더
춤 좋아하는 백엔드 개발자(였으면 좋겠다)
회고록 (4)
리액트 1달차 토이프로젝트 리뷰 (게임 커뮤니티 사이트) - 작성중

 

초기 목표

  • 리액트를 학습하기 위해서 (경험해보기 위해서..)
  • 백엔드 개발자 지망생으로서 프론트엔드 개발자들에게 어떻게 데이터를 가공해서 넘겨주면 좋을지 이해해보기 위해서
  • 백엔드, 프론트엔드가 완벽히 분리되어 있을때의 신경 쓸 수 있는 부분을 현업 체험 전에 경험해보자!

 

기존 서버사이드 개발 환경

  • 스프링부트 , 스프링 시큐리티, JPA , Mysql , Redis , 인텔리제이
  • 게시판
    • 게시글 관련
      • 쓰기, 읽기, 수정, 삭제, 검색
      • 게시글 추천, 조회수, 베스트 게시글 (최근 3일의 게시글 중 좋아요 10개 이상 상위 5개)
      • 게시글에 캐릭터 링크 후 클릭 시 해당 캐릭터가 등록된 게시글 혹은 캐릭터 정보 상세보기 조회 가능
    • 댓글 관련
      • 쓰기, 읽기, 수정, 삭제
      • 대댓글 (계단식이 아닌 하나의 댓글에 한 층(?)의 댓글이 열리는 로직
      • 대댓글 쓰기 읽기 수정 삭제
      • 베스트 댓글 (해당 게시글의 좋아요 10개 이상 상위 5개)
  • 회원
    • 가입,로그인,탈퇴,정보 변경
    • 세션 로그인 방식 -> Jwt 토큰 인증 방식
      • 원활한 소통을 위해서 세션 인증 방식에서 변경 하였으나, 실질적으론 변경할 이유가 없었다.
        • JSESSIONID 쿠키가 클라이언트로 받아와지지 않았던 오류가 발생 했을때 변경했으나, 토큰을 쿠키에 저장하는 방식으로 구현하니 세션 인증 방식과 다를게 없었다.
        • 오히려 토큰 인증 방식으로 구현하니 잡다한 오류가 많이 발생해 기존의 스프링 시큐리티에서 제공해주는 안정적인 폼 로그인 방식이 더 나아보였다.
    • 회원과 모험단 연동 (직접 연동이 아닌 단순 서버사이드에서 db에서 연관관계를 맺는 방식)
    • 회원과 캐릭터 즐겨찾기 등록
    • 프로필 이미지 변경
  • 캐릭터
    • 캐릭터 정보 검색 
    • 캐릭터 랭킹 조회 (모험단, 개인 캐릭)

 

초기 화면 구현 목표

  • 유지보수가 쉽도록 재사용 가능한 컴포넌트 만들기
  • 상위 컴포넌트에서 하위 컴포넌트로 여러개의 props 를 넘겨줘서 의존하게 하는 행위 지양
  • 반응형 템플릿 제작
  • 딱딱한 사이트가 아닌 최소한의 애니메이션을 이용해 동적인 웹페이지 구성
  • 기존의 서버사이드 개발시에 중요하게 생각했던 계층형 구조를 생각하며 개발 및 정리

클라이언트 사이드 진행상황

  • 개발 환경
    • 리액트 최신버전, 타입스크립트, REST API, Material UI, Styled Component 
  • 게시판 
    • 게시글 관련 ⭕️
      • 쓰기, 읽기, 수정, 삭제, 검색 ⭕️
      • 게시글 추천, 조회수, 베스트 게시글 (최근 3일의 게시글 중 좋아요 10개 이상 상위 5개) ⭕️
      • 게시글에 캐릭터 링크 후 클릭 시 해당 캐릭터가 등록된 게시글 혹은 캐릭터 정보 상세보기 조회 가능 ⭕️
    • 댓글 관련 ⭕️
      • 쓰기, 읽기, 수정, 삭제 ⭕️
      • 대댓글 (계단식이 아닌 하나의 댓글에 한 층(?)의 댓글이 열리는 로직 ⭕️
      • 대댓글 쓰기 읽기 수정 삭제 ⭕️
      • 베스트 댓글 (해당 게시글의 좋아요 10개 이상 상위 5개) ⭕️
  • 회원
    • 가입 ⭕️,로그인 ⭕️,탈퇴 ❌ ,정보 변경  ❌
    • 세션 로그인 방식 -> Jwt 토큰 인증 방식 ⭕️
    • 회원과 모험단 연동 (직접 연동이 아닌 단순 서버사이드에서 db에서 연관관계를 맺는 방식)  ❌
    • 회원과 캐릭터 즐겨찾기 등록 ❌
    • 프로필 이미지 변경 ⭕️
  • 캐릭터
    • 캐릭터 정보 검색  ⭕️
    • 캐릭터 랭킹 조회 (모험단, 개인 캐릭) ⭕️

 

메인화면

 

재사용 가능한 테이블 구현

모바일 환경에서도 이용 가능하도록 반응형으로 개발

 

그리드를 이용하여 모바일 환경에서는 한줄, pc 및 태블릿 환경에서는 두줄로 랭킹을 표시하도록 구현

 

  • 단순히 각각의 파트별로 각각의 컴포넌트를 매번 새로 만들 필요 없이 , 단순 틀로 사용 할 수 있는 테이블 컴포넌트를 선언 후 , 테이블의 양옆에 컴포넌트를 렌더링하거나 행동을 지정할 수 있도록 구현했다.
  • 내용에는 각각 필요에 따라 다른 내용이 들어갈 수 있도록 구현했다. (테이블 컴포넌트 > 내용 컴포넌트 로 이어지는 트리)
    • 해당 부분은 생각보다 어려운 부분은 없었고, 개발 초기에 구현했던 부분이라 어디까지 나눠서 어떠한걸 props 로 전달해줘야할지 고민이 많았던 부분이었다.

이런식으로 상위 컴포넌트에 전적으로 의지하도록 구현하였다. (단순히 이것 하나로 렌더링 할 무언가가 있을것 같지 않다는 생각이 들었다.)

재사용 가능한 검색창 구현

깔끔한 느낌의 검색창을 구현하였다.
최근 검색 기록과 빠른 검색을 지원해준다.

 

영상을 업로드 하지 못해서 아쉽지만 mui 의 트랜지션 api 를 사용해 애니메이션을 추가하여서 딱딱한 느낌을 없애주었다.

  • 처음엔 단순 노동으로 셀렉트 박스와 서치박스를 합쳐서 해당 컴포넌트를 구현했었다가, mui 의 input base 와 paper 라는 api 를 이용해서  사각형 카드 박스에 버튼으로 셀렉트박스와 input base 로 검색 input 창을 구현 후 합쳤다.
    • 이때 css 에 대해서 한번 더 배우게 되었다.
    • 해당 셀렉트 박스를 api를 이용하지 않고 구현하려면 밑의 화면을 덮어쓰는 쪽으로 구현해야 하는데, position 속성을 처음으로 알게되어 이용하게 되었다.
  • 해당 검색창 구현은 코드도 그렇지만 ui 적으로 더더욱 유저 친화적인 부분으로 개발하려고 노력하였다.
    • 어떻게 보면 검색창 / 선택 박스 / (최근 검색 기록 , 빠른검색  ( 최근검색기록 출력화면 , 빠른검색 출력화면 )) 이런식으로 분리되 어 있어서 각각의 이벤트 발생 시에 핸들링을 어떻게 해야할지 고민을 많이 했다.
    • 하나의 컴포넌트를 통으로 렌더링 하는게 아닌 하나의 div 에 여러개의 div 가 들어가있는 형식이라 이때 검색 창의 외부를 클릭시에 옵션창이 사라진다던지, 옵션창이 나와있는데 셀렉트박스를 누르면 사라졌다가 셀렉트 박스가 닫혀지면 다시 나타난다던지 하는 로직을 구현하는데 머리를 많이 썼다.

useRef 를 이용하여 클릭 이벤트를 핸들링하였다.

  • 해당 기능을 구현하면서 useRef 훅과 dom 오브젝트 를 다루는법을 조금이나마 이해했다.
  • 결국 chatGPT 의 도움을 받긴 했지만, 그래도 해당 부분에 대해서 좀 더 논리적으로 고민했던 흔적이 남아있어서 해당 컴포넌트를 구현했을 때 좀 뿌듯했다.
  Comments,     Trackbacks
22-12-13~22-12-19 개발공부 회고록

기존의 주간목표를 작성했던 부분에서 매일 TIL에 일일목표를 작성하는것으로 변경했습니다.

진행했던 것들 🤔

  • 알고리즘 정리
    • 시간복잡도 개념익히기
    • 해시 테이블 익히기
    • 트리 구조 익히고 구현해보기
    • 해시/우선순위 큐 문제 풀이
  • 스프링 토이 프로젝트
    • 전체 코드 리팩토링 
      • 각 메소드별로 중복된 부분 추출후 함수화
      • 기존 DTO 하나로만 전달하던 것에서 필요한 정보만 주고 받을 수 있도록 Request Response DTO를 사용하도록 수정
      • JPA 공부하면서 DB조회 빈도를 줄일 수 있도록 고민 후 수정
    • 테스트 코드 작성/수정
  • JPA 5장,7장,장 정리
    • 연관관계 매핑
    • 고급 매핑
    • 프록시와 연관관계 관리
  • 그룹스터디 워크샵 준비
    • 회의/발표 준비/모의발표/ 워크샵 진행

 

느꼈던 점 🤔

  • 이번 한 주는 유난히 힘들었습니다.
    • 매일 먹고자고싸는 시간 제외 머릿속에 코딩생각과 공부생각으로 살아왔는데, 드디어 한계가 온 것 같았습니다.
    • 생각해보니 내가 춤을 그만둔 이유도 너무 춤에 모든것을 쏟아버린 나머지 흥미를 잃어서 그만둔것이었는데, 이렇게 하면 의미가 있나 라는 생각이 들었습니다.
      • 최대한 붙잡아보려 했지만, 주말은 그냥 쉬도록 날렸고, 일단 우선순위가 가장 높았던 그룹워크샵 준비에 힘을 약간 쏟아 부었습니다.
      • 다행히 좋은 결과가 있었던것 같았습니다.
  • 마인드셋 특강에서 해당 그래프 얘기가 나온적이 있습니다.

  • 지금 절망의 계곡 쯤 온 것 같습니다. 더 열심히 하지 말고 지금처럼 꾸준히만 하자를 목표로 삼아야겠습니다.
  • 이제 주간 회고록에서 목표를 TIL을 꾸준히 작성하는 것으로 변경했습니다.  빈도를 늘려서 일간회고를 습관화 해야겠다는 생각이 들었습니다.

좋았던점  🤔

  • 오랜만에 정말 아무 생각도 안하고 주말을 잘 보낸 것 같습니다.
    • 요즘 신경쓸게 너무 많았는데도 컨디션이 따라주지 않고, 생각보다 혼자 지내는게 외로웠던 한 주였는데 잘 버틴것 같습니다.
  • 힘들어하는 와중에 포기하지 않았습니다. 
    • 하루에 적어도 두시간이상이라도 붙잡았던것 같습니다. 쉴땐 쉬고 놀땐 놀자가 이제 몸에 익은 것 같습니다.
  • 그룹 워크샵 발표는 개인적으로 성공적이었다고 생각합니다.
    • 생각보다 설계가 잘되었다고 생각했습니다. 부족한 부분은 계속 보완해나가며 각 역할별로 최선의 결과를 내려고 노력했던 것 같습니다.
  • 어렵다고 생각했던 알고리즘에 한걸음 더 다가가게 되었습니다.
    • 남은 힙 자료구조만 정리하게 되면, 제가 알고있는 자료구조에 대한 기본적인 개념은 다 나가게 됩니다.
    • 그런데 생각보다? 해당 자료구조 자체가 어렵다는 생각은 들지 않았습니다.
    • 앞으로 그 자료구조들을 어떻게 찜쪄먹을지에 대한 노하우정도만 익히면 코딩테스트 가 아닌 단순 구현에 어려움은 겪지 않을것 같다는 희망이 생겼습니다.
  • 토이프로젝트를 진행하고 리팩토링에 대한 노하우가 살짝 생긴 것 같습니다.
    • 전에는 리팩토링을 한다 할때 겉모습만 바뀌었지 결국 유지보수 하기 쉬운 코드를 작성했다 생각한적이 없었지만 지금은 그래도 관리하기 쉬운 코드를 작성하는 방법을 흉내라도 내는것 같은 착각?이 듭니다.
    • 그 착각을 확신으로 바꾸기 위해서 코딩을 더더욱 습관화 해야겠다는 생각이 들었습니다
      • 마찬가지로 알고리즘 문제 하나를 풀더라도 다른사람들은 어떻게 풀었느냐를 참고하는것도 리팩토링 실력 상승에 영향이 있다고 생각이 들었습니다. 
  • 드디어 기본적인 토이프로젝트는 끝난것 같습니다.
    • 남의 코드를 보고 참고하는것이 아닌 이제 내 자료를 보고 무언가를 새로 시작할 수 있게 되었습니다.
    • 이래서 문서화가 중요하구나 라는 생각이 들었습니다. 다행히 프로젝트를 진행하는 내내 거의 모든 기능 구현에 대한 글을 남겨놓길 잘했다는 생각이 듭니다. 

 

아쉬웠던점 🤔

  • 현타가 온다면 쉬어야하는데 저는 자책을 하고 있습니다. 내가 개발을 당장 그만둬도 내가 먼저인데. 더 제 자신을 사랑해줘야겠습니다.
  • 쉴땐 쉬고 놀땐 놀아라 를 실천하지 못했습니다. 위에는 조금이라도 더 해보려고 노력했다는데, 아닌날에는 쉬어야겠습니다.
  • 생각보다 한 주를 돌아보니 아쉬웠다는 생각은 크게 안듭니다. 제가 그동안 열심히 해와서 덜 찔리나봅니다. 유지라도 열심히 해야겠다는 생각이 듭니다.

 

 

 

  Comments,     Trackbacks
22-12-05~22-12-12 개발공부 회고록

서론

주간 목표 

  • 스프링부트 프로젝트 기능 구현 ⭕️
  • 알고리즘 자유롭게 공부 후 문제 풀이 ⭕️
  • 이펙티브 자바 / JPA 책 스터디 ⭕️ 

 


본론

알고리즘 자유롭게 공부 후 문제 풀이

드디어 첫 토이프로젝트가 마무리 되고, 알고리즘 공부를 다시 시작했습니다.

 

이번주에 진행한 알고리즘 파트는 링크드리스트, 해시, 힙 자료구조와 우선순위 큐 입니다.

 

문제는 해시/힙 자료구조 위주로 풀이했으며, 링크드리스트 에 대해서 요약정리도 진행했습니다.

 

 

 

링크드 리스트

https://velog.io/@brince/Linked-List-%EC%A7%81%EC%A0%91-%EA%B5%AC%ED%98%84%ED%95%B4%EB%B3%B4%EA%B3%A0-%EC%9B%90%EB%A6%AC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

Linked List 직접 구현해보고 원리 이해하기

링크드 리스트

velog.io

 

링크드리스트 같은 경우에는 일단 기본적으로 배열과 큰 차이점을 갖고 있습니다.

링크드 리스트는 말그대로 연결 리스트 인데요, 각각 인덱스의 원소끼리 서로 체인으로 연결되어있어서 중간에 데이터를 삽입/삭제 시에 기존에 연결된 체인을 끊고 새로 연결한다 정도로 쉽게 이해할 수 있는데요,

 

기존엔 이정도로만 익혔지만 이번에 공부하면서 새로 알게된 부분은 링크드 리스트는 각각의 노드에 데이터와 포인터로 이루어져 데이터에는 데이터가 저장되고, 포인터에는 다음 데이터의 주소를 저장하는 형식으로 이루어져있다는걸 알게 되었습니다.

 

예를들어 3개의 노드가가 연결리스트 안에 존재한다면, 마지막 노드의 포인터는 null이고, 새로 삽입을 할때 해당 포인터에 다음 노드를 참조시키는 것으로 데이터를 삽입/삭제 합니다.

 

마찬가지로 링크드리스트를 직접 구현해보고 기존에는 단순히 시간이 좀 걸린다~ 정도로만 알고있었지만 자료를 넣고 빼고 하는데 좀 복잡하구나.. 를 알게되었습니다.

 

스프링부트 프로젝트 기능 구현

 

이번 한주는 개인적으로 프로젝트에 시간을 많이 투자했던 한 주 였습니다.

 

이번주에 진행했던 것들은 게시판 프로젝트에 계정 엔티티에 이미지 입출력을 적용해 프로필 이미지를 변경하는 기능을 구현하는것과,

 

그것을 응용해 단순 파일만 업로드하고 출력하는게 아닌 JPA Repository로 파일 DB저장소를 만들고 저장/삭제/조회 를 구현하고

 

또 그것을 응용해 게시판에 외부 에디터 / 뷰어를 적용해 이미지 입출력까지 진행후 리팩토링까지 진행해보았습니다.

 

 

 

스프링부트로 프로필 이미지를 변경해보자 🤔 (파일 입출력)

사용기술 스프링부트 제이쿼리 타임리프 살짝 서론 디테일하게 파일을 저장하는 레포지토리를 만들어서 해당 레포지토리에서 파일을 꺼내오는 것이 아닌 파일 입출력을 스프링 부트에서 어떻

codinghentai.tistory.com

 

스프링 부트+ JPA 로 파일 입출력을 쉽게 구현해보자 (Spring Data JPA)

서론 🙋‍♂️ 스프링부트로 프로필 이미지를 변경해보자 🤔 (파일 입출력)를 응용해서 파일을 업로드하고 해당 파일의 경로와 이름, 확장자 그리고 사이즈까지 저장하는 Jpa Repository 를 생성

codinghentai.tistory.com

 

 

스프링부트 Toast UI 에디터 / 뷰어 적용 + 이미지 입출력 -1

참고한 게시글 : https://velog.io/@io_/Toast-UI-Editor-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C Toast UI Editor 이미지 업로드 Spring Boots를 사용해 Toast UI Editor에 이미지 업로드하기!!!! 어느날 미래에서 삽질

codinghentai.tistory.com

 

 

스프링부트 Toast UI 에디터 / 뷰어 적용 + 이미지 입출력 -2

https://codinghentai.tistory.com/2 스프링부트 Toast UI 에디터 / 뷰어 적용 + 이미지 입출력 -1 참고한 게시글 : https://velog.io/@io_/Toast-UI-Editor-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C Toast UI Editor 이미지 업

codinghentai.tistory.com


마무리

  • 알차게 보낸 한 주 였던것 같습니다. 알고리즘을 오랜만에 다시 공부하게 되었는데 확실히 전보다 이해가 더 잘되는 기분입니다. 꾸준히 코딩을 하는 습관을 들이는게 중요한것같다고 한번 더 느끼게 되었습니다.
  • 이펙티브 자바를 공부하면서 애를 먹었습니다. 정리할정도로 그것들을 활용할 길이 적었기 때문입니다. 공부하는 내용의 대부분이 직접 지금 당장 사용할 일들이 없는 레거시 코드였습니다. 마찬가지로 앞으로는 모든 파트를 공부하기 보다는 힘든 부분은 넘기고 다음에 도움이 필요할때 참고해야겠다고 다짐하게 되었습니다.
  • 이제 기본적인 스프링 프로젝트를 진행할때 크게 겪는 문제는 없는것 같은 느낌입니다. 클린코드와 리팩토링에 대해서 공부를 시작하면 좋을거같다는 생각이 들었습니다 🤔

 

  Comments,     Trackbacks
패스트캠퍼스 메가바이트 스쿨 - 백엔드과정 월간회고-1 10/24~11/20

서론🥉

벌써 제가 지원했던 국비 교육이 시작된지 한달이 지났습니다.

저같은 경우에는 공부를 살면서 해본적이 없는데.. 생각보다 코딩이라는게 재밌게 느껴지다보니

독학도 무리없이 꾸준히 해왔던지라 국비교육을 지원해야할지 말아야할지 굉장히 고민도 많이했고..

수많은 학원들에 상담도 가보고, 지원까지 다 마치고 다시 취소하는 과정을 몇번을 반복.. 고민의 연속이었으나

어차피 손해볼것 없다고 생각이 들어서 딱 한곳만 지원하고 취소를 하지 않았고,

마지막으로 지원했던 곳이 패스트캠퍼스 메가바이트 스쿨이었습니다.

패스트캠퍼스 국비과정을 지원한 이유

개인적으로 패스트캠퍼스의 국비교육 과정이 마음에 들었던 이유는

  • 진행 시간이 오후 1시부터 오후 10시 까지였다.

저는 매일 2시정도 까지 개인적인 일과를 다 끝마치고 (운동, 개인업무 등등) 공부 혹은 토이프로젝트를 밥먹고 싸는 시간 포함 자기전까지 했었기 때문에

기존의 생활패턴과 최대한 비슷한 국비교육 과정을 듣는게 효율적이라 생각했습니다.
(물론 평소에 늦잠을 자진 않습니다만, 잘 수 있는것과 못자는건 다르다고 생각했습니다.
개인적으로 뭐 하다보면 새벽 4시에 잘때도 많았기때문에.. )

  • 프론트엔드 협업 프로젝트 / 기업연계 프로젝트

개인적으로 백엔드를 공부하는 사람들도 프론트부분은 어느정도 할 줄 알아야 한다는 생각이 있긴 했습니다만,

정말 중요한걸 진행할때는 온전히 제가 집중할 수 있는 부분에만 몰두하는게 맞다는 생각이 들었습니다.

어느정도 저도 토이프로젝트를 진행하다보니까, 물론 하면 좋겠지만 프론트 부분에 제 기준 주어진 할당량 외의 시간을 더 많이 사용하고 있었습니다.

그리고 UI/UX 디자이너, 프론트엔드 개발자 분들과 기업연계 프로젝트를 진행하는 부분도 차별점이 있다고 생각했습니다.

  • 다른 국비교육 과정보다 살짝은 더 긴 진행기간

보통 4~6개월의 기간을 두고있는 다른 국비교육과는 다르게 메가바이트 스쿨은 7개월동안 진행되기 때문에 진도가 조금이라도 더 천천히 나갈거라고 생각했고

강사님들께서 정해진 진도에 급하게 맞춰가지 않고 조금이라도 더 학생들과 소통할거같다는 생각이 들었었습니다.

개인적으로 크게 와닿았던 부분은 이 세가지였고, 지금도 충분히 만족하고 있는 부분이라고 생각합니다.

본론🥈

한달동안 진행되었던 것들 📆

생각보다 또 마음에 들었던게, 타 국비교육생들 얘기를 들어보면 굉장히 정신없게 지나가서 본인이 뭘 해야하는지, 뭘 하고있는지, 그리고 앞으로 또 나 혼자서 뭘 할 수 있을지를 모르는것 같다는게 큰 특징 같았습니다.

하지만 생각보다 타이트하게 진행된 부분은 없었고, 충분한 자습시간과 강의 수강 시간, 그리고 실시간 강의도 나름 충분히 복습이 가능하게끔 배정되있는 느낌을 받았습니다.

그룹스터디 조 배정/ 진행 👯‍♀️

처음 OT가 진행되고, 7개월동안 어떻게 국비교육 과정이 진행될지, 그리고 우리가 뭘 지켜야하고 꼭 하지 말아야할것이 무엇일지 알게되고 나면

설문을 통해 그룹스터디 조가 배정됩니다.

해당 설문은 본인이 어떠한 부분을 콕 짚어서 그룹원들과 스터디를 진행하고 싶은지를 제출하게 됩니다.

그리고 주마다 3회의 그룹스터디 시간이 주어지고, 시간이 더 필요하다면 자율적으로 조절이 가능했습니다.

각 그룹마다 원하는 시간에 원하는만큼 그룹스터디가 가능했고, 원하다면 개인공부도 가능했기때문에

남들보다 뒤쳐지거나 정해진 그룹스터디 과제를 수행하지 못해 오히려 공부 의욕이 떨어지거나 할 수 있는 분들까지도 개인 공부를 더 하실 수 있게 배려를 해주셨습니다.

그리고 또 좋았던점은 그룹마다 패스트캠퍼스 내의 온라인 강의중에 원하는 강의 한개를 골라서 모든 그룹원들이 수강할 수 있도록 제공해주셨습니다.

저희조같은 경우엔 클론코딩을 목표로 모였던 조였기 때문에 객체지향적 프로그래밍 기초부터 프로젝트 클론코딩까지 제공해주는 강의를 제공받을 수 있었습니다.

그룹스터디 진행상황 🗓️

그렇게 저희 그룹은 초반에 진도가 다들 달랐고, 제가 어느정도 자바/스프링을 예습해왔던 상황이고 제가 말이 가장 많았기 때문에 (..)

그룹장을 맡게 되었고, 회의를 통해 아직 프로그래밍 공부가 익숙하시지 않으신 분들도 계셨고, 진도가 다 달랐기 때문에

제가 그동안 개인적으로 진행했던 주마다 공부한것을 기준으로 주간 회고록 작성후 발표

로 목표를 세워 한달동안 진행했습니다. 다들 긍정적인 반응이었고 저도 개인적으로 단순히 회고록을 써야 한다는 압박감 말고는 진도나 단체행동으로 인한 부담감이 없을거라 생각해서 좋은 시도라 생각했습니다.

한달동안 진행함으로써 얻어간 것들 💁🏻

첫주는 생각보다 회고록이 정리가 안되있으신 분도 계시고, 다들 언어 공부에 있어서 어색해 하시는 모습을 보였지만,

결론은 전체적으로 다들 첨 시작하는 개발블로그 였지만, 시작한지 몇주가 지나지 않아서 공부에 대한 기록을 남기는 습관을 갖게 되셨습니다.

단순히 어느 블로그에서 복사한내용을 붙여넣기 하고 끝내신게 아니고

공부하셨던 부분에 있어서 자신의 의견을 말할줄 알게 되었고,

그룹원 분들께서 해당 부분을 공부함으로써 어떻게 활용했고, 어떤부분을 얻어갔고 어떠한 부분이 부족한지 알게되 또 새로운 목표를 세울 수 있었습니다.

그룹장으로써 굉장히 자랑스러웠습니다.. 해당부분은 그룹스터디 회고에서 더 디테일하게 작성해보도록 하겠습니다..

실시간 강의 (깃 사용법과 자바 기초) 💡

기본적인 스케줄은 오후 1시부터 6시 까지는 개인 자습과 온라인 강의 수강 시간을 갖고, 저녁시간 이후 7시~10시 까지는 실시간 강의가 진행되었습니다.

3주차 까지는 월/수/금 요일에 실시간 강의가 진행되었고, 4주차 부터는 매일 저녁시간에 강의가 진행되었던것 같았습니다. 개인적으로 적응하는 시간을 갖게 해주신것 같다는 생각이 들었습니다. ( 첨부터 몰아붙이면 겁먹을수도 있다는 개인적인 생각이 있긴 합니다 ㅎㅎ )

  • 깃 사용법 익히기와 깃허브로 협업 실습 해보기, 깃 cli 커맨드 익히기
  • 자바 기초 데이터타입부터 OOP 기초 배우기

깃 사용법 익히기 / 깃으로 협업 실습 진행해보기

저같은 경우에는 해당 교육과정을 듣기 이전에 프로젝트 강의에서 알게된 깃 크라켄으로 커맨드를 거의 하나도 모른 상태에서 형상관리를 해왔는데요..

그러다보니 개인적으로 실무에 투입되었을때 버벅이는 부분이 있을수도 있겠다는 생각을 했고, 무엇보다 혼자 토이프로젝트를 꾸준히 진행해왔기 때문에 협업하는 부분에서 처음에 어려움이 있을까 하는 고민이 있었습니다.

해당 파트 강사님께서는 처음부터 차근차근 콘솔을 이용해 깃으로 에드, 커밋, 푸쉬, 브랜치 생성, 전환 등등 여러가지 기능을 알려주셨고

직접 파일을 수정해 커밋하고 푸쉬하는 실습 환경을 만들어 주셨고,

개인적으로 궁금했던 툴을 사용해도 되는데 커맨드를 알고 git cli 를 사용할 줄 알아야 하는 이유 도 알려주시는 등, 매번 강의 진행때마다 모든 궁금한점을 해결해주셨습니다.

그리고 제일 중요했던 협업하는 과정을 알려주시고, 어떠한 한 상황에 적용시켜 직접 팀원을 초대하고, 각각 브랜치를 생성해 파일을 커밋하고 푸시 , 코드리뷰까지 완료해 머지까지 하는 상황을 만들어 실습시간을 갖게 해주셨습니다.

이렇게 각각 저희조는 이미 어떠한 서비스중인 기본 틀을 갖고 있는 프로젝트에 각각의 기능을 구현해 풀 리퀘스트를 하는 예제 상황을 만들어 실습을 진행했습니다.

처음부터 과한 팀프로젝트를 진행하며 버벅이면서 익힐 필요 없이 적응을 시켜주시는 수업 방식에 굉장히 만족했던 부분이었습니다.

자바 기초 🧑🏻‍💻

어떻게 보면 급하게 알려주시고 넘길 수 있는 부분까지 강의에서 짚어주셨습니다.

개발환경 설정부터, OOP 프로그래밍 기초까지 한달동안 진행되었습니다.

저같은 경우엔 자바 복습을 2~3번 정도 진행했던 상황이라 필요한 부분만 수강하고 다른 부분에는 자습을 진행했습니다.

마찬가지로 강사님께서도 수업 진행 도중 실습시간도 갖게 해주시고, 주마다 과제를 내주셨습니다.

과제 난이도도 무엇보다 처음 배우는거라 너무 쉽게 낼 수도 있지만, 딱 중간 난이도의 과제를 내주셔서

저같은 경우엔 단순히 A라는 방법으로 풀이할 수 있지만 B,C 라는 더 좋은 방안까지 고민할 수 있는 시간을 가질 수 있는 기회가 생겼다고 느껴졌습니다.

( 단순 문제풀이가 아닌 왜 이런 부분이 컴파일 오류가 나는지에 대해 설명해야 하거나 A가 B보다 왜 더 나은지 설명해야하는 문제도 포함되어있어 이론을 한번 더 익힐 수 있었습니다. )

과제 제출도 과제 repository 에 개인 브렌치를 생성해 제출하고 커밋/푸시 후 풀 리퀘스트를 하는 방식으로 진행됐기 때문에 버전관리 까지 가져갈 수 있는 좋은 시간을 제공해주셨다 생각이 됩니다.

결론 🥇

한달동안 진행하면서 느낀게 , 교육 과정 자체가 타이트 하지 않아서 개인적으로 누군가가 매번 감시하고 푸시해줘야지 더 열심히 하신다거나 그러신 분은

과정 자체가 좀 안맞겠다는 생각도 듭니다.

저같은 경우에는 오히려 자습시간/실시간강의 시간을 확실히 분리해두시고 자율적인 그룹스터디 시간을 제공해주신 부분에 있어서 한달동안 급하지 않지만 그렇다고 게으르게 진행하지도 않았던 기분이 들어

개인적으로 크게 만족하는것 같습니다. (심지어 달에 한번씩 휴가도 주심)

그렇게 한달동안 여러 부분에서 시너지 효과를 얻어서

혼자 공부했을때 보다 많은걸 가져가게 된것 같습니다.. 수료 후에 제 모습이 기대된다고 해야할까요.

해당 과정이 개인 후기가 하나도 없었어서 저도 시작 전에 많이 고민했었는데, 저같은 사람이 있으실까 해서 남겨봅니다!
(돈받은거 없음)

손해볼거 없다면 도전해보세요 🤺

 

(해당 글은 블로그 이전으로 붙여넣기 처리되었습니다.)

  Comments,     Trackbacks