Overview Private Method를 테스트 하다보니 Reflection을 사용하여 작성을 하여 번거로움이 있었습니다. 라이브러리의 힘을 빌려 PowerMock 으로 Private Method 를 Mocking하여 유닛테스트를 작성해봅니다. Gradle Dependencies 아래의 의존성을 추가해줍니다. powermock-module-junit4 powermock-api-mockito2 testImplementation( "org.powermock:powermock-module-junit4:2.0.9", "org.powermock:powermock-api-mockito2:2.0.9" ) Service Layer 아래의 public 메소드가 있습니다. isNewOrder 는 private 메소드이..
Java Stream API 란? Java8 API에 새로 추가된 기능입니다. 컬렉션, 배열 등을 함수형 프로그래밍을 활용하여 반복 처리하도록 도와주는 API입니다. 그럼 Stream API를 왜 쓸까? 1. 컬렉션 데이터를 선언형으로 코드를 구현할 수 있습니다. With For-Loop List lowCaloricDishes = new ArrayList(); for(Dish dish : menu) { if(dish.getCalories d.getCalories() < 400) .sorted(Compara..
Overview REST API에 대해서 알아보고, 조금더 탄탄한 설계를 해봅시다 REST API 란? REST(REpresentational State Transfer)란, 웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다고 한다. 따라서 RESTful API는 REST 특징을 지키면서 API를 제공하는 것을 의미한다. HTTP 프로토콜에서 HTTP METHOD 와 URI를 통해 리소스를 주고받는 것 Restful 하게 하는 6가지 조건 Uniform Interface HTTP 표준만 따르면, 특정언어나 플랫폼에 종속받지 않고 사용 가능함(파이썬, Java, Javascript,웹, iOS, ..
Overview Java에서 제공하는 ByteBuffer에 대해 알아보고, 생성해봅니다. ByteBuffer란? ByteBuffer 는 바이트 데이터를 저장하고 읽는 저장소입니다. 배열을 멤버변수로 가지고 있고, 배열에 대한 읽기/쓰기를 지원합니다. CharBuffer, IntBuffer, LongBuffer.. 등 데이터 타입에 따라 다양한 추상 메소드를 제공합니다. 배열상태 관리 capacity 버퍼에 저장할 수 있는 데이터의 최대 크기입니다. 한 번 정하면 변경할 수 없고, 생성자의 파라미터로 입력받아 버퍼를 생성합니다. position 읽기/쓰기가 작업 중인 위치를 나타내는 필드입니다. 버퍼가 생성될 때 0으로 초기화되고, put 메소드나 get 메소드가 호출되면 자동으로 증가합니다. limit과..
Overview Immutable Object에 대해 알아보고, 학습해 봅니다. Immutable Object란? 객체 생성 후 객체 내부 상태가 변경 불가능한 객체를 말합니다. 다시 말해, 객체가 생성 된 후 모든 lifecycle에서 동일한 값을 보장받을 수 있습니다. Java에서는 대표적으로 String, Boolean, Integer, Float, Long 등 이 있습니다. String message = "hello"; message = "bye"; String 의 경우 위와 같이 변수값이 변경하여 불변객체가 아니야? 라고 생각할 수 있는데, message 가 참조하고 있는 주소의 "hello" 값이 "bye"로 변경되는것이 아니라, 새로운 객체를 만들고 그 참조하는 주소에 "bye"라는 값을 할..
Overview 세 클래스는 전부 Java에서 String(문자열)을 저장하고 관리하는 클래스이다. Java 프로그래밍을 할 때 문자열을 가장 많이 사용하는데, 자주 사용되는 클래스들의 쓰임새를 잘 알고 효율적으로 사용하는 것이 바람직해 보여 포스팅을 한다. 불변성(immutable) : 객체의 값이 할당된 Heap 영역의 값을 변경할 수 없다. 주소가 재할당 됩니다. 가변성(mutable) : 객체의 값이 할당된 Heap 영역의 값이 변경 가능합니다. 주소는 그대로 사용하고 값을 변경합니다. String String은 immutable(불변성) 합니다. 객체가 생성되면 할당된 메모리공간에 변화가 일어나지 않습니다. @Test public void testString(){ String originText..
Overview 클린코드 책을 읽고, 짧은 후기를 써보려한다. 목표 클린코드에 대해 쉽게 생각하기 실무에서 클린코드 잘 적용하기 이름을 잘짓자 의도를 분명히 밝혀라 나쁜예 int a; int b; 좋은예 long batchStartTime; long batchEndTime; long elapsedTimeInDays; 길어도 좋으니 형용사 + 명사를 조합하여 변수명에 작성자의 의도를 명확히 드러내자. 단 루프(for문..)에서는 전통적으로 한글자 변수를 사용함( i, j, k , 단! l, o 는 안됨! 숫자랑 헷갈림 ㅎ ) 애매한 단어나 프로그램 단어는 되도록이면 피하자 애매한 작명은 피하자 나쁜예 int O = 0; int l = 0; if(O == 0) if(l == 1) 프로그램에서 통용되는 용어로..
JavaScript 주민번호 입력받고 남/녀, 성인/미성년 구분정 의☞ 텍스트 필드에 주민번호 앞자리 6자리( id = post )☞ 패스워드 필드에 주민번호 뒷자리 7자리( id = pre )123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475Insert title here $(document).ready(function(){ $('#post').on('keypress', function(event){// alert(event.which); // 0(숫자) == 48(이벤트 코드) ~ 9 == 57 // ..