728x90

자바 3

객체지향 체조

내가 부트캠프를 하던 시절 과제로 코드를 작성하는데 몇 가지 조건을 제한해둔 과제를 받은 적이 있다. 제한해둔 조건은 대략적으로 아래와 같았다. (기억이라 틀릴 수 있음) 1. 절대로 인덴트 depth 가 3 이상이 되지 않도록 하시오. 2. 중복코드를 최대한 없도록 하시오. 3. 하나의 함수가 80줄을 넘지 않도록 하시오. 그 당시에는 "이것이 가능한가?" 라는 물음이 있었다. 근데 또 하다보니 어찌어찌 되긴됬다. 근데 이 중 for 문 부분에서 3뎁스에 도달해서 떨어질꺼란 생각을 했던 기억이 난다. 여튼 그 당시에는 잘 몰랐지만, 이 내용이 객체지향 체조에 들어있던 내용이였다. 그래서 오늘은 객체지향 체조를 정리해보려고 한다. 객체지향 체조 1. 메소드 당 indent depth 는 하나로 제한한다...

Java 2021.11.28

테스트를 어떻게 해야하는가?

개요 최근 어떤 테스트가 좋은 테스트인지? 무엇을 테스트 해야 하는건지에 대한 의문점이 생겼다. 그래서 springcamp.io 에서 발표한 용근님의 발표내용을 정리해보려고 한다. https://www.youtube.com/watch?v=YdtknE_yPk4&t=174 테스트로 얻을 수 있는 것 제일 중요한것은 안정감과 자신감의 상승. 안정감과 자신감은 미래의 나 그리고 현재의 나의 동료들이 느낄 수 있도록 테스트 코드를 작성해야 한다. 무엇을 테스트 할 것인가 예시코드는 로또였는데, 처음에는 로또가 6개를 반환하는 것만 테스트 되어 있었음. 요구사항은 아래와 같은 세가지였다. - 중복 처리 - 순서가 잘 바뀌었는지 - 6개의 수를 반환하였는지 처음에는 작성자가 Set 으로 구현했기 때문에 중복처리 테스..

Test 2021.10.27

객체는 무엇일까?

객체지향 프로그래밍에서는 클래스 내부 변수를 private 으로 선언하여 외부에 노출하지 않는 것을 선호합니다. 또한 무의미한 setter 와 getter 는 객체를 객체가 아닌 단순한 데이터 Sturucture 로 간주해 버릴 수도 있으니, 신중하게 외부로 내부의 속성을 노출하라고 말합니다. 그 이유는 무엇일까요? 아래의 클래스를 한번 봅시다. public class Point { public double x; public double y; } 이렇게 했을때 문제는 무엇일까요? 문제는 외부에서 Point Class 의 Property 에 직접적으로 붙을 수 있다는 것입니다. 예를 들면 아래와 같이 말이죠. Point point = new Point(); point.x = 10; point.y = 20;..

Java 2021.10.14
728x90