분류 전체보기
-
3, 4주차 리뷰우아한 테크코스/테크코스 2020. 3. 16. 22:28
페어 : 동글 / 리뷰어 : 화투님 :) 메서드는 명시적으로 명명 getCount()보다는 getUserCount()라는 식으로 명시적으로 명명하기 예외처리는 적재적소에 하기 aMethod()가 bMethod()를 호출하여, bMethod()의 예외에 걸리더라도, 해당 예외의 내용 자체가 aMethod()의 것이라면 aMethod()에 예외처리를 하는 것이 맞음 말이 조금 어려웠을 수 있지만, 예외처리를 굳이 맨 끝단에 두지 않고, 꼭 필요한 곳에 해야된다는 것을 유념하기 값 객체의 경우 equals()와 hashCode()를 모두 정의해주기 이팩티브 자바를 참고해보면 equals()와 hashCode()는 같이 정의를 해줘야된다고 나옴. 값 객체인 경우 두 메서드 모두 정의해줄 것 자료구조를 적절히 사..
-
[Java] 단위 테스트 명명규칙우아한 테크코스/테크코스 2020. 3. 16. 21:13
1. MethodName_StateUnderTest_ExpectedBehavior 명명 메서드명_테스트상태_기대행위 특징 코드 리팩토링의 일부로 메서드 이름이 변경되면 테스트 이름을 변경해야 함 예시 isAdult_AgeLessThan18_False - withdrawMoney_InvalidAccount_ExceptionThrown - admitStudent_MissingMandatoryFields_FailToAdmit 2. MethodName_ExpectedBehavior_StateUnderTest 명명 메서드명_기대행위_테스트상태 특징 첫 번째와 앞/뒤만 다름. 단점은 위와 동일 예시 - isAdult_False_AgeLessThan18 - withdrawMoney_ThrowsException_IfA..
-
[객체지향] 다형성 & 추상화우아한 테크코스/테크코스 2020. 3. 16. 20:53
객체 지향이 주는 장점 - 구현 변경의 유연함 캡슐화 외에도 유연함을 얻을 수 있도록 해주는 방법이 있는데, 이는 추상화이다. 상속(Inheritance) 한 타입을 그대로 사용하면서 구현을 추가할 수 있도록 해주는 방법을 제공 상속 대상 클래스 - 상위(super) 클래스 / 부모(parent) 클래스 상속 받는 클래스 - 하위(sub) 클래스 / 자식(child) 클래스 하위 클래스 특징 상위 클래스에 정의된 구현을 물려받음. 언어마다 다르지만 자바(또는 다수의 언어)의 경우 private 범위를 갖는 메서드나 필드를 제외한 나머지를 물려받을 수 있음 필요에 따라 상위 클래스에 정의된 메서드를 재정의(overriding), 즉 새롭게 구현할 수도 있음. 재정의시 해당 메서드를 실행할 때, 하위 클래스..
-
[프로그래밍 패러다임] 객체 지향 프로그래밍우아한 테크코스/테크코스 2020. 3. 14. 15:31
객체의 핵심 - 기능 제공 객체(Object) : 객체 지향의 기본 - 물리적인 특징 : 데이터와 그 데이터를 조작하는 프로시저(오퍼레이션, 메서드, 함수)로 구성 - 실제로 객체를 정의할 때 사용되는 것 : 객체가 제공해야 할 기능, 내부적으로 어떤 데이터를 갖고있는지는 대상이 아님 예시) 음량 조절 기능 객체 - 제공하는 기능 : 음량 증가, 음량 감소, 음소거 - 내부적으로 소리 크기를 어떤 데이터 타입이나 값으로 보관하고 가지고 있는지는 중요하지 않음 - 또한 기능이 어떻게 구현되어있는지, 즉 어떻게 소리가 증감되는지는 알 수 없음 보통 객체가 제공하는 기능을 오퍼레이션(operation)이라 함, 즉 객체는 오퍼레이션으로 정의 인터페이스와 클래스 객체가 제공하는 기능을 사용하는 것 : 객체의 오..
-
[프로그래밍 패러다임] 절차지향 VS 객체지향우아한 테크코스/테크코스 2020. 3. 14. 11:51
프로그래밍 소프트웨어를 구성하는 데이터와 데이터를 조작하는 코드를 작성하는 것, 데이터를 조작하는 코드를 별도로 분리하여 함수나 프로시저와 같은 형태로 만듦 절차 지향 - Procedural Oriented 절차 지향이란? 절차 지향(Procedural Oriented) 프로그래밍 : 각 프로시저들이 데이터를 조작하는 방식으로 코드를 작성. 프로시저는 다른 프로시저를 사용할 수도 있고, 각각의 프로시저가 같은 데이터를 사용할 수 있음. 프로시저(procedure)로 프로그램을 구성하는 기법 각 프로시저는 데이터를 사용해서 기능을 구현하며, 필요에 따라 다른 프로시저를 사용하기도 함. 또한 여러 프로시저가 동일한 데이터를 공유함 예시 - 시험 성적 관리 프로그램 성적 평균을 계산하고 출력하기 위한 프로그램..
-
자바의 I/OJava 2020. 3. 13. 20:06
I/O란? Intput/Output의 약자로 입력과 출력, 간단히 입출력이라 함 입출력 : 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것 예) 키보드로부터 데이터를 입력, System.out.println()을 이용해 화면에 출력 스트림(stream) 자바에서 I/O를 수행하려면, 즉 어느 한 쪽에서 다른 한 쪽에 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요함, 이것을 스트림(stream)이라 정의(단, 람다의 스트림과는 다른 개념) 스트림 : 데이터를 운반하는데 사용되는 연결 통로 연속적인 데이터의 흐름을 물에 비유해서 붙여진 이름으로, 물이 한 쪽 방향으로만 흐르는 것과 같이 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동..
-
[IntelliJ] 테스트 커버리지 확인하기우아한 테크코스/테크코스 2020. 3. 13. 17:40
Project > test > java에서 우클릭 > Run 'Tests in '......' with Coverage 선택 그러면 이렇게 테스트 커버리지를 확인할 수 있다. 왼쪽 Project탭에는 패키지/클래스별 커버리지 퍼센테이지가 나타난다. 중간 소스탭에는 커버된 부분은 초록색으로, 커버되지 않은 부분은 붉은색으로 나타난다. 우측 커버리지탭에서는 Element별 커버리지를 볼 수 있고, 클릭하여 하위로 접근할 수도 있다. 이를 이용해 테스트를 조금 더 강화시켜보면 좋을 것 같다.