728x90
반응형

0 + 프로그래밍/0 + Java 4

제어할 수 없는 코드가 포함된 로직을 메소드 변경 없이 테스트 코드를 작성하는 방법(오버라이딩)

제어할 수 없는 코드가 포함된 로직을 메소드 변경 없이 테스트 코드를 작성하는 방법(오버라이딩) 제어할 수 없는 코드가 포함된 레거시 코드를 받은 당신 🫵 당신은 아래의 레거시 코드를 받았고, move라는 코드의 테스트 코드를 작성해야한다. 이때 당신은 어떻게 해야할 것인가? public class Car { public static final int FORWARD_NUMBER = 1; private int position; public void move() { if (getRandom() >= FORWARD_NUMBER) { position++; } } private int getRandom() { return Randoms.pickNumberInRange(0, 9); } public int getPo..

[10분 테코톡] 나는 제너릭을 모르고 개발했다.

[10분 테코톡] 나는 제너릭을 모르고 개발했다. Java로 개발을 진행하다 보면 제너릭이라는 표현을 들어보셨을 것 입니다. (, )을 추가했습니다. 와일드 카드는 정해지지 않은 unknown type이기 때문에 Collection로 선언하여 모든 타입에 대한 호출이 가능해졌습니다. // 와일드 카드 적용 void printCollection(Collection c) { for (Object e : c) { System.out.println(e); } } 그런데 데이터를 삽입할 때 문제가 있습니다…. void genericTest() { Collection collection = new ArrayList(); collection.add(new Integer(1)); } 와일드 카드로 선언된 타입은 unk..

[10분 테코톡] 나는 GC를 모르고 개발했다.

[10분 테코톡 정리] 나는 GC(Garbage Collection)를 모르고 개발했다. Java 개발자면서 Java의 핵심인 GC에 대해서도 잘 모르고 있었다…(JVM을 모르니 모를수 밖에…) 좋은 Java 개발자가 되기 위해서는 Java를 구성하는 핵심 기능인 JVM과 그안에서 열심히 일하는 GC에 대해서 알아야 한다고 생각합니다. GC 튜닝은 성능 개선의 최종단계 라고 합니다. 객체 생성 자체를 줄이려는 코드 레벨에서의 개선이 선행 되어야 합니다. 나도 어느 정도 규모가 있는 서비스를 운영하게되면 반드시 GC 튜닝을 할 일이 생길 것이다.!!!! 이번 기회에 GC에 대해서 공부하고 정리해보자!😄 참고: https://www.youtube.com/watch?v=FMUpVA0Vvjw NAVER D2 N..

[10분 테코톡] 나는 JVM를 모르고 개발했다.

[10분 테코톡] 나는 JVM를 모르고 개발했다. 부끄러운 일이다. Java 개발자면서 Java의 핵심인 JVM에 대해서 잘 모르고 있었다… 그냥 대충 JVM이 OS와 JAVA 사이에 동작하는 프로그램이야~ 정도로만 이해하고 대충 넘겼다. 늦었지만, Java 개발자면서 Java의 핵심인 JVM에 대해서 잘 모르는 건 말이 안된다고 생각한다. 그래서 이번 기회에 공부하고 정리해보려고 합니다.😄 그중 10분 테코톡에서 어썸오님의 발표 영상이 많은 도움이 됐습니다. 여러분도 꼭 들어보시는 것을 강추 드립니다. 👍 참고: YouTube NAVER D2 Hotspot JVM Heap 메모리 구조: Java7, Java8 비교하여 Java의 특징 JVM에 대해서 설명하기에 앞서 Java의 특징에 대해서 간략하게 설..

728x90
반응형