Java

Java

java에서 입출력 어디까지 테스트 해야할까요?

글을 작성하게 된 이유 좋은 품질의 코드를 위해서 거의 필수적인 부분인 테스트코드를 작성하다 생긴 궁금증입니다 어디서부터 어디까지 테스트를 짜야할까요? 당연하지만 도메인로직에 대한 단위테스트는 작성해야 할 것 같습니다 그렇다면 입출력은 어디까지 테스트를 해야할까요? 그리고 어떻게 테스트를 작성해야 할까요? 실제 우테코 전체 질답에 올렸던 질문 위 질문이 실제로 제가 올렸던 질문인데요 해결방법 1 여기에 답변이 달렸던 내용으로는 static을 그대로 유지하는 방법이 더 좋겠다는 말이 나왔습니다. 그 이유로는 원래대로라면 state가 없기에, static으로 충분히 유지할 수 있는 클래스인데, 이를 테스트만을 위해서 전략패턴을 적용해서 상속하는 부분은 테스트만을 위해서 코드가 변경되었기에 좋지않겠다는 내용인..

Java

Object 의 toString 부터 hashCode 까지

이 글을 쓰게 된 이유 Object 클래스에 대해서 생각보다 모르는 것들이 많았고, 이번 기회에 자세하게 알아보아야 겠다는 생각이 들었는데요 알아보는 김에 우아한테크코스 프리코스때 리뷰가 나왔던 부분 먼저 자세하게 알아보면서 진행해보려고 합니다 toString 메서드 알아보기 이 부분이 실제 toString 메서드에 대한 정의인데요 리턴하는 값은 오브젝트를 나타내는 스트링이라고 적혀 있습니다 toString 메서드는 오브젝트를 텍스트로 나타내는 텍스트를 나타내고, 사람이 읽기 좋은 좋은 결과를 반환해야 한다고 정의되어있습니다 모든 오브젝트를 상속하는 클래스(사실상 모든 클래스) 가 이 메서드를 오버라이딩 하는 것을 권장하고 있다고 합니다 계속 안정적일 필요도 없고, JVM 호출에서 안정적으로 유지될 필요..

Java

Enum 사용시 메서드 오버라이딩을 주의해서 사용해야 합니다

Java Enum 에서는 함수형 인터페이스를 인자에 두고, 이를 오버라이딩 해서 사용하는 방식의 코드를 작성할 수 있습니다 이를 사용하는 것에는 주의가 필요하다고 생각하는 입장인데요 먼저 다른 언어와 같이 enum 마다 각각의 값이나, 상수를 저장하는 것은 당연하지만 무조건 필요하다고 생각하는 입장입니다 이와는 다르게 enum 에다 기능을 오버라이딩 해서 사용하는 것(함수를 추가하는 것)은 지양해야한다고 생각하는 입장인데요 public enum Day { MONDAY(() -> { Cook cook = new Cook(); cook.cook(); }), TUESDAY(() -> { WashingMachine washingMachine = new WashingMachine(); washingMachine...

Java

Java 면접 공부를 하면서 생겼던 궁금증들

interface와 abstract class의 차이가 뭘까요? 이 질문을 하게 된 배경 Cloneable함수가 동작하는게 너무 이상했어요 https://velog.io/@suky/Java-Cloneable%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B3%A0%EC%B0%B0 Java: Cloneable에 대한 고찰 이펙티브 자바를 읽다가 문득 든 의문을 풀기 위하여 삽질한 기록입니다. 🤣 velog.io 대체 왜 interface만 구현했는데, 모든 코드가 알아서 작동할까요? Java8에 오면서 interface에도 default 메서드를 만들 수 있고, static 메서드까지 만들 수 있는데, 그러면 abstract class 와의 차이가 뭘까요? 1. 다중 상속이 가능하다. 2. 접근..

be-student
'Java' 카테고리의 글 목록 (2 Page)