본문 바로가기

개발자 취업 프로젝트[일지]

💻개발자가 되기 위한 프로젝트(81)💻

05.30.2023 - 학습 일지

 

1. AM 09:00 ~ PM 18:00분 : BE(백엔드 KDT)

   - [AM 09:00 -  11:50, PM 13:00 - 18:00]

 

[특강] Java - OOP[객체 지향 프로그래밍]

✔ [학습 내용]

 

  윤년 구하기

      1. Class
         - Main, MyUtils
         - MainTest(TDD)
      2. Method[MyUtils]
         - checkLeapYear(), printYear(), isLeapYear()
      3. Annotation[MainTest]
         - @Test

   369 게임
      1. Class
         - Main, MyUtils
         - MainTest(TDD)
      2. Method[MyUtils]
         - game369Ex(), game369(), isGame369()
      3. Annotation[MainTest]
         - @Test

    소수, 완전수, 약수
      1. Class
         - CMath
         - CMathTest(TDD)
      2. Method[CMath]
         - isPrime(), isRepeatedPrime(), isPerpectionNumber(), factors(), factorsOf()
      3. Annotation[CMathTest]
         - @Test

[특강] Java - OOP[객체 지향 프로그래밍](실습)

[특강] Java - OOP[윤년 구하기, 369게임] 실습
[특강] Java - OOP[수수,완전수,약수] 실습

[특강] Java - OOP[객체 지향 프로그래밍](실습후기)

   - OOP에 대해서 개념을 알려주고 바로 알고리즘 문제를 활용하여 Main method에서 윤년 구하기 문제를 풀고 Refactoring하여 되도록이면 Main Method에는 호출하여 Output에 결과만 구현되도록 만들었고, 계속해서 369문제를 풀면서 Main Class에 계속해서 method들이 많아져서 MyUtils Class에 각 Method의 기능들을 옮겨주고 Main Class에는 MyUtils Class의 Method기능을 사용하기 위해 호출을 하고 참조변수를 이용하여 원하는 메서드를 이용하여 Output에 결과물이 동일하게 표시되는지를 Test하였다. 그리고 소수,완전수,약수를 구하는 문제를 풀면서 CMtah Class에서 동일하게 작업하고 Refactoring을 하여 일단 실행 시 Output에서는 요구하는 답이 잘 출력되는지를 Check하고 문제가 없다는 것을 확인 후 TestClass를 만들어 앞으로는 CMath에서 Test하는 것이 아닌 JUnit5 프레임워크를 이용하여 Test환경에서 직접 Test를 하고, AssertJ 라이브러리를 이용하여 Assert Method의 기능을 이용하여 True, False, 값을 비교하여 앞에서 Test한 것 보다 한층 더 직관적으로 표현하며 문제가 없다면 다음 단계로 진행하거나 종료하면 된다. 이렇게 OOP의 정의와 TDD를 학습하면서 좀더 코드를 구현하는 것에 그치지 않고 항상 TDD가 필요하다는 것과 물론 시간이 없거나 빠르게 개발해야한다면 TDD의 비중이 적겠지만, 왠만하면 TDD를 통해서 코드에 문제가 없도록 진행해야 한다는 것을 느꼈고, Refactoring을 계속해서 하다보니 반복적인 부분은 되도록이면 다른 Class로 분리하여 호출하여 사용되도록 하면 더 깔끔한 코드가 되고 재사용성 면에서도 더 효율적이다라는 것을 인지하게 되었다.

KDT 학습내용 용어정리

2. KDT 학습내용중 기본개념 및 용어정리

 - Java - SOLID → 노션

 - Java - JUnit, AssertJ  → 노션

KDT 학습내용 용어정리(노션내용 일부)

[Java] SOLID - OOP 설계 5원칙 정리 
[Java] JUnit, Assert - JUnit, Assert Method 정리

마무리

   - OOP와 TDD를 학습하면서 이미 이전에 빠르게 간단하게 개념만 알고 실습을 통해서 조금 익숙해진 상태였지만, 오늘처럼 조금 더 디테일하게 설명하고 쓰임새에 대해서 알고나니 이해가 되고 계속해서 반복학습도 하고 부족한 파트였는데 특강을 통해서 다져가고 내것으로 점점 더 만들어가고 구현할때에도 그냥 구현하지 않고 의미를 알고 꼭 완벽하게 알지는 않더라도 왜 Refactoring을 해야하고 Test를 하기 위해서는 JUnit 프레임 워크를 이용하여 Test를 하여야 하는지를 쓰임을 이해하니깐 재밌기도 하고 그러면서 이해를 했더라도 노션에 배운 것들 중 핵심적인 부분을 정리하면서 상기시키고 정리하면서 마무리를 하였는데, 앞으로 TDD를 활용하여 개발을 이어가야 겠다는 생각과 Rectoring을 하여 재사용성을 높이는 방향으로 계속해서 연습하고 자동 구현이 될때까지 연습해야 겠다. 언제나 즐거운 코딩을 할 수 있어 감사하고 조금씩 블로그 작성도 최대한 더 자세하게 기술하는 방향으로 진행되도록 해봐야 겠다! XD