22-09-27~22-10-02 개인 스터디 회고록

BRINCE·2022년 10월 3일
0

서론

벌써 공부를 시작한지 4주가 지났다.
되돌아 보자면 , 첫주의 나는 정말 단순히 객체 지향 프로그래밍이 뭔지 설명도 못했고, 인터페이스와 추상클래스의 차이도 정확히 설명을 못했으며, 혼자서 코드를 작성하는데 굉장히 큰 어려움이 있었다..

마찬가지로 공부 하는 습관이 자리에 안잡혀 엉덩이를 붙이고 있는게 굉장히 힘들었던것 같다 ㅎ

4주가 지난 지금 정말 많은 발전이 있었다는 생각이 든다.

  1. 알고리즘 문제 풀이가 일상에 자리잡았다. 심심하면 게임하듯이 풀고있다.
  2. 객체지향 프로그래밍의 핵심인 낮은 결합도, 높은 응집도를 가진 코드를 작성하는 실력이 한 단계 업그레이드 됐다.
  3. 어떠한 개념에 대해 정확히 물어봤을때 한마디로 정리하긴 아직 어렵지만 , 어떻게 기능이 돌아가는지 대충이라도 알게 되었다.
  4. 4주전의 나와 지금의 나를 비교해보니, 인강을 들을때나 문제 풀이 해설을 볼때 이해도가 확실히 다르다.

크게 바뀐점은 이정도인것 같다.
저번 한주는 스프링 개념들을 배워보았던 시간이었고, 이번주부터는 본격적으로 스프링부트를 배워볼 예정이다 ㅎㅎ 너무 기대가 된다 🥰

본론

저번 한주는 크게 나눠

  • MVC 패턴 프로그래밍
  • 서블릿
  • 웹어플리케이션
  • REST API
  • JDBC 프로그래밍
  • 백준 알고리즘 실버 4달성

이정도로 배웠던것 같다.

객체지향 프로그래밍 테스트 코드 작성

웹 어플리케이션 이해

서블릿 프로그래밍

의존성주입/ 리플렉션 API/ 프론트 컨트롤러 패턴

MVC 패턴 서블릿 프로그래밍

Model View Controller 의 약자인데,
이 경우엔 계산기 프로그램을 MVC패턴으로 웹 프로그램으로 구현해보는 실습을 진행했다.

단순히 Model - 계산기 / View - 결과화면과 원하는 계산값 전송 / Controller - 클라이언트에서 얻어온 수,연산자 를 받아 모델로 전송, 모델에서 결과값 전달 받은 뒤에 클라이언트로 전송 (가공?)

이렇게 대충 개념을 익혔다.
REST API 를 활용하여 GET 메소드를 이용해서 HTTP 링크에 파라미터 들을 나누고 메소드 언어를 나눠서 Calculate 를 메소드 단어로 지정후에 , 각각 변수들을 숫자, 연산자 로 받아들이도록 설정한 후에 결과값을 보내 최종 계산값을 받도록 코드를 작성해보았다.

리플렉션 API

리플렉션 API 같은 경우에는 복잡한것 없이 , 새로운 Annotation을 생성해 reflection 의존성을 추가해주어서 해당 어노테이션이 어느 클래스에 사용되었는지 / 원하는 클래스의 필드에 선언된 것들, 메소드, 생성자들을 조회할 수 있게 간단하게 확인해보는 코드 작성을 해보았다.

JDBC 프로그래밍

JDBC 프로그래밍 같은 경우에는 hikariCP를 이용해서 코드를 작성했었는데, 그냥 단순히 내가 몇주전에 혼자서 DB연동 해서 게시판 로그인 회원가입 탈퇴 했던거에 그냥 내 root 계정으로 데이터베이스를 생성해서 하는것이 아닌 임의의 데이터베이스를 만들어서 사용하는것 같았다.

원래 했던것처럼 conn 생성해서 pstmt 로 익스큐트쿼리 해서 res로 결과값 받아와서 출력하고.. 테스트 코드 작성도 활용해서 해당 코드가 잘 작동 하는지 , 다른값을 넣었을때 실패가 뜨는지 (아이디를 불러와서 정보가 일치하는지 확인했을떄) 같은걸로 동작을 점검했다. 크게 뭘 만들진 않았고 추후에 사용될 기능이니 훑어보는 정도로 가볍게 지나갔던것 같았다.

좋았던점

  • 추후에 배울 스프링부트에서 깊이 다루지 못할 것들을 짚고 넘어가서 좋았다.

  • 알고리즘 문제 푸는 속도와 이해력이 높아졌다. 첫주에는 브5도 간당간당했는데 이제 브1정도는 문제없이 풀고 실5도 해설 안보고 풀 수 있는 문제들이 늘어났다.

  • 인강을 듣다가 집중이 안될땐 다시 책으로 개념을 한번 더 짚어보고 있는데, 인강에서 배웠던 내용들이 대부분 책에서 중요하게 다루던 내용이었다. 책으로 다시 정리를 할 수 있게되어서 나만의 개념 정리가 살짝은 된 것 같은 느낌이다.

아쉬웠던점

  • 어차피 나중에 이거 내가 다 일일히 작성 안해도 스프링부트가 알아서 해줄거라고 생각하니 집중하기 힘들었다 .................... 라면을 끓이는데 내가 간단하게 인스턴트 라면을 끓일 수 있지만 면부터 야채 토핑 스프 까지 만드는걸 배운 느낌이었다 ......................... 근데 중요하다니 최대한 집중하려고 노력했다...

  • 결국엔 강의에서 코드 실습으로 다루는 내용보다 이부분들은 이론과 돌아가는 구조를 익히는게 굉장히 중요하단걸 확실히 깨닳았다.. 이부분은 추후에 스프링부트로 프로젝트를 진행하면서 다시 책으로도 같이 공부해야되겠다고 생각했다.

  • 알고리즘 중에서 수학 관련된 문제가 점점 어렵게 다가왔다. 뭔가 이부분 때문에 수학 관련 문제들은 점점 집중력이 떨어지는 느낌이다. 문제 풀이는 내가 감당할 수 있는 부분만 어느정도 시간 투자를 하고, 나머지 어려운 부분들은 나중에 다시 알고리즘 관련 서적들을 구매해서 공부해야겠다는 생각이 들었다.

  • 저번 한 주는 대부분 코드 작성 실습 으로만 진행해서 내가 직접 짜볼 자료들이 좀 적었다. 내가 일일히 짤 수 있는 능력이 될려면 아무래도 관련 서적들로 공부도 좀 많이 하고, 실무에서 많이 배운 이후에 가능할것같다는 생각이 들었기때문..

정리

이번 한주는 크게 내가 가져가는게 없었던 한주였던것 같았다.
아무리 이론을 배우고 코드를 따라쳐봐도 결국에 내가 이걸 활용하는 방법을 알지 못하면, 이해하기 어려웠을 부분이었던건 확실했다.

이번주부터는 드디어 스프링 부트로 클론코딩을 시작할것이다!
이제 진짜 내가 무언가를 만든다는 느낌이 들지 않을까 하는 생각이 든다.

저번 4주동안은 자바 기초 공부, 알고리즘풀이 익숙해지기, 공부하는 습관 들이기, 기초 스프링 프레임워크 개념을 살짝 배워봤다면

이번 4주동안은 스프링부트로 작은 프로젝트를 내가 따라 쳐서라도, 내꺼로 확실하게 만들 수 있었으면 좋겠다 ㅎㅎ

profile
자스코드훔쳐보는변태

0개의 댓글