본문 바로가기

우테코

우테코 2주차 - 숫자야구 피드백 강의 후기

1주차 프리코스 미션이 끝나고

제이슨 님의 숫자야구 피드백 강의와 자바기초 강의를 수강하였다.

 

자바 문법이 분명 허들이 될 수 있다는 말씀과 함께

OOP적 사고와 개념을 적극적으로 받아들인다면

문법은 부수적인 요소일 뿐이라는 응원이 마음에 남는다.

 

할 수 있다.


>> 학습 내용 정리

 

>> build 도구의 역할(gradle)

- 파이썬의 pip와 같은 기능

- 외부 라이브러리나 기능들을 자동으로 추가해줌

- 프로젝트의 뼈대와 구조를 잡아줌

 

>> main 과 test 디렉토리

- main : 최종적으로 배포할 코드

- test : 기능 test code / production test

 

>> 프로그램의 시작점

: public static void main(String[] args)

 

>> package

: 디렉토리가 곧 패키지라고 생각해도 됨

: 어떤 프로그램의 애플리케이션인지 파악이 가능

: 패키지를 먼저 찾고 프로그램을 생각하는 습관을 기르자

 

>> class의 네이밍은 메소드 행위와 연관지어 파악되므로 매우 중요하다

 

>> 클래스가 가질 수 있는 행동(메소드)

- 메소드의 시그니처 : 메소드 이름 + 매개변수 자료형

 

 

>>접근 지정자 : public, private 등

- 이 class를 어디까지 열어줄지 지정

- public : 클래스 외부에서 접근 가능

- private : 내부에서 접근이 가능

- protected 

 

>> directory import

: 클래스 링킹을 위해 외부에 선언된 클래스 사용시 경로를 import 하여 연결

 

>> 클래스 선언 및 할당

e.g)

Calculator teacher = new Calculator();

=> 인스턴스가 변수 내로 복사됨

 

>> 멤버변수(인스턴스 변수)

: 클래스 단위로 변수를 관리 및 접근

: 접근 지시자를 통해 공개범위 설정 가능

: 메소드 내에서 같은 이름으로 선언된다면 => 지역변수

: 객체별로 각자의 멤버변수를 지니며 서로 공유하지 않음

 

>> 클래스 변수

: public static int shareResult=0;

: static 변수 => 모든 인스턴스가 공유하는 변수

: 클래스에서 바로 접근이 가능(인스턴스 접근도 가능)

 

>>변하지 않게 상수화하는 법

: final => 변화를 하면 오류 반환

: 상수의 이름은 대문자 + _로 구성됨

 

>> OOP의 개략적인 스텝

1. 기능을 가지고 있는 클래스를 인스턴스화(=객체)힌디.

2. 필요한 기능을 역할에 맞는 인스턴스가 수행하게 한다.

3. 각 결과를 종합한다.

 

>> Intellij의 자동정렬기능

: Ctrl + Alt + L

=> 패키지를 누르고 실행하면 전체적으로 적용됨

 

>> 정적 메소드에서는 정적 메소드만 호출 가능

 

>>test code 작성법

:class에서  Alert +Insert => test code 클릭

: test code case만들고 결과값과 비교

=> 버그를 가장 먼저 알아챔

 

 

>>반복되는 코드를 @BeforeEach를 통해 넣어줄 수 있음

=> 매 테스트 코드에 다음 명령어가 삽입됨

 


>> 배운 점

 

1. skeleton code 작성의 중요성

: 이번 강의를 수강하다 느낀 가장 큰 깨달음 프로그램의 전체적인 구조 설계의 중요성이다.

: 추상적인 개념으로 시퀀스를 정의했던 나와 달리 정확한 주체별 기능을 구분하고 이 객체들이 어떤 상호작용을 주고 받는지 명확하게 필요한 메소드를 정리하는 과정은 프로그램 구현은 물론 흐름을 직관적으로 받아들일 수 있는 계기가 되었다.

 

 

2. 습관적으로 final을 붙이자

: 강의 중간중간에 습관적으로 final을 붙이고 시작하는 모습에서 상수화의 중요성을 느꼈다.

: 혹시모를 변동이나 인터럽트에 대비해 최대한 상수화하려 애쓰자

 

3.  static의 의미와 적극적인 활용법

: 인스턴스 변수와 클래스 변수의 정의를 정확히 구분할 수 있게 되었고, 주로 인스턴스 변수만을 활용했던 것에 반해 static 변수도 적극적으로 활용해야 겠다는 생각이 들었다. 특히 객체 자체가 공통값으로 가지는 초기값이나 상수화하여 가져도 되는 값들은 클래스 변수로 선언하는 습관을 가지는 것이 좋을 것 같다.

 

4. TDD의 기초적인 방법

: 알고리즘 문제를 풀 때는 항상 화이트박스 테스트를 진행해왔고 내가 입력값을 주고 중간중간 출력문을 넣어주며 오류가 나는 부분을 찾고자 애썼다. 그래서 인지 테스트 코드 작성과정이 신선하고 파격적으로 다가왔다.