본문 바로가기

분류 전체보기60

테스트 코드 작성하기가 귀찮다고? 테스트 코드 작성이 귀찮으신가요? " 그러시면 안 됩니다... " 오늘은 테스트 코드를 작성해야하는 이유에 대해서 설명해 보겠습니다. TEST CODE 란? 개발한 기능이 의도한 대로 작동하는지, 개발 도중 생각하지 못했던 결함이 있는지 확인하기 위해 작성하는 코드 TEST CODE 의 장점 체계적이고 효율적인 개발 프로세스 코드의 동작의 이해를 돕는 문서의 역할 작성한 코드가 의도한 대로 작동하는지 검증 에러를 클라이언트보다 더 빨리 발견하고 수정 코드 수정이 필요할 경우, 안정적이고 유연하게 대응 리팩토링 시 기능 구현 결과가 변경되지는 않았는지 점검 (이 외에도 다양한 테스트 피라미드가 존재한다) TEST 의 종류 Unit Test(단위 테스트) 가장 작은 단위의 테스트이며, 오직 하나의 모듈을 기.. 2024. 1. 2.
List 의 사이즈 및 null 체크를 하고 싶다고? - JAVA List 를 이용하여 데이터를 다룰 때 에러 처리 및 신규 생성, 기타 등등 상황들에서 사이즈를 체크하거나 null 여부를 체크해야 하는 상황들이 발생하는데 이때 어떤 함수나 라이브러리를 사용하는 것이 좋을까요? 이번 시간에 알아보도록 하겠습니다 Collection Interface 를 상속받는 List Interface 는 순서가 있는 Collection 을 나타낸다 List Interface 는 요소들을 특정 순서대로 유지하고, 중복된 요소들의 존재를 허용한다 size() int 타입을 반환하는 메소드로 컬렉션의 정확한 크기를 알 수 있다는 장점이 존재한다 하지만 단순히 컬렉션이 비어 있는지 체크하고 싶은 경우 isEmpty() 보다 미세하게 더 많은 계산을 수행할 수 있다 List Interface.. 2023. 12. 29.
테스트 코드(JUnit)에서 모의 객체가 필요할 땐? "Mockito" Mockito 란? 자바 기반의 모킹 프레임워크이며, 실제 의존성을 모의 객체로 대체하여 유연하고 독립적인 테스트를 가능하도록 한다 모킹(Mocking)이란? 테스트 코드 외부에 있는 의존성들을 대체하기 위해 사용되는 가짜 객체(Mock Objects)를 생성하는 기술 (테스트 코드에 대한 설명 보러 가기) Mockito 의 주요 기능 #1 인자 매처 메소드를 특정 타입의 인자나 조건을 만족할 때만 지정한 값을 반환하도록 설정하여 다양한 입력 값에 대한 메소드의 동작을 검증할 수 있다 #2 행동의 검증 메소드가 정상적으로 호출되었는지, 어떤 매개변수로 호출되었는지, 호출 횟수는 몇 번인지 검증하여 DB 에 저장하는 로직을 검증할 수 있다 #3 부분적인 모의 복잡한 서비스 객체에서 특정 메소드만 모의하여 .. 2023. 12. 26.
equals() 랑 "==" 랑 똑같은 거 아니였어? - JAVA String 변수를 선언하는 방법이 두 가지가 있다는 사실을 아시나요? 흔히(?) 사용한다고 할 수 있는 리터럴을 이용한 방식 String str = "string"; 그리고 new 연산자를 이용한 방식 String str = new String("string"); 두 방식에는 명백한 차이점이 존재한다 new 연산자를 사용하여 선언할 경우 Heap 영역에 존재하게 되고, 리터럴을 사용하여 선언할 경우 내부적으로 String 의 intern() 메소드가 호출되고 해당 문자열이 string constant pool 에 존재하는지 확인하고 존재하면 해당 주소값을 반환하고 존재하지 않는다면 string constant pool 에 넣고 새로운 주소 값을 반환한다 기본적인 String 생성 방식에 대해서 알아봤으.. 2023. 12. 17.
캐시(cache)랑 쿠키(cookie)는 뭐가 다른 거야? 누구나 한 번쯤은 웹서핑을 하다 보면 쿠키 설정을 하라는 문구가 뜨거나. 이전 검색 기록들을 볼 수 있다거나, 광고들이 갑자기 내가 쿠팡에서 직전에 검색했던 상품들로 가득 찼던 경험이 있지 않은가 이것이 바로 쿠키(cookie)다. 쿠기는 크롬과 같은 브라우저에 저장되는 작은 텍스트 조각이며, 사용자의 인증을 도와주는 역할을 한다 만료기간이 존재하여 시간이 지나면 자동으로 삭제되지만, 개발자 도구에서 수정이나 삭제가 가능하며 제 3자 또한 조회할 수 있기 때문에 보안상 민감한 정보를 저장하기엔 부적절하다 따라서 남에게 탈취되거나 조작되어도 크게 문제가 되지 않는 정보들을 저장하면서 유저의 웹사이트 이용을 보다 편하게 해주는 역할이다 예를 들어, 다크 모드 설정 여부 자주 보는 웹툰 목록 등과 같은 간단한.. 2023. 12. 16.
scan.next() 사용 시 주의 사항 - JAVA JAVA 에서 Scanner 를 통하여 String 을 입력받을 때 주로 사용되는 next()... 주의 사항에는 어떤 점들이 있고 nextLine() 과 어떠한 차이가 있을까? 먼저 코드부터 살펴보자 입력값은 Hello World! 이고, 가독성을 위해 입력값은 " " 처리 nextLine() after next() public class Warning { public static void main(String args[]) { Scanner scan = new Scanner(System.in); System.out.print("문자열 입력(Space, Tab, Enter 전까지): "); String wordBeforeGap = scan.next(); System.out.println(wordBefo.. 2023. 12. 14.
728x90
반응형