본문 바로가기

Web Technologies 🖥️18

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.
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.
BufferedWriter 는 뭔데 sysout 보다 빨라? - JAVA 자바를 입문하게 된다면 System.out.println("Hello World"); 를 맨 처음 접하게 된다 그렇게 우리는 자연스럽게 Scanner 와 sysout 으로 입 / 출력을 관리하게 된다 하지만 알고리즘 풀이나 기타 상황에서 성능적인 코드를 작성해야 할 때 더 빠른 함수가 있다면? 고려해보지 않을 이유가 없다 BufferedReader & BufferedWriter java.io 에 속한 이 녀석들이 바로 그에 대한 해결책이다 그 이유를 살펴보자 BufferedWriter 의 경우 데이터를 내부 버퍼에 저장하고 버퍼가 가득 차면 한 번에 데이터를 출력하나 sysout 의 경우 호출될 때마다 즉시 출력하므로 반복적인 I / O 작업으로 성능이 저하된다 이러한 특성 때문에 I / O 작업의 횟수.. 2023. 12. 8.
[jQuery] - ajax 완전 정복 먼저 예시코드 2가지를 살펴보고, 하나씩 자세히 뜯어보자 ajax 예시 코드 1 $.ajax({ url: 요청을 보낼 URL(ex: "comment/writeComment.do"), type: 요청을 보내는 방식(ex: "GET", "POST", "DELETE", "PUT"), data: 보내는 데이터 형식(ex: formData), // controller의 consume dataType: 받는 데이터 형식(ex: "json"), // controller의 produces // 기타 설정 async: false // 동기 처리 여부(default: true), contentType: 서버로 보내는 데이터의 MIME 타입 (ex: "application/x-www-form-urlencoded; chars.. 2023. 12. 5.
728x90
반응형