Back-End/Java18 [Java] IntelliJ 디버깅 애플리케이션 실행이 비정상적이거나 구현한 코드가 의도한 대로 동작하지 않는 경우 IDE의 디버깅 모드를 통해 문제를 분석하고 해결할 수 있는 방안을 찾을 수 있습니다. 본 포스팅에서는 IntelliJ 환경에서 디버깅 모드를 실행하는 방법을 정리하고 활용 방안에 대한 내용을 쌓아갈 예정입니다. Break Point 애플리케이션을 구동하는 중에 Break Point를 사용하려면 Debug 모드여야 하기 때문에 로컬 개발 환경에서는 Run보다는 Debug로 실행하는 것이 편리하다.코드 실행 중 Break를 걸어서 상태를 확인하고 싶은 구간이 있다면 사진과 같이 라인 넘버를 클릭하여 Break Point를 만들 수 있다. 애플리케이션이 실행되어 Break Point가 지정된 라인이 실행되는 시점에 멈추게 .. 2024. 12. 19. 생성자에 매개변수가 많다면 빌더를 고려하라 | Builder pattern, Lombok @builder Builder pattern 빌더 패턴은 "복잡한 객체의 구성과 그 표현을 분리하여 동일한 구성 과정이 서로 다른 표현을 만들 수 있도록 하는 것"을 목표로 한다. 복잡한 개체를 단계별로 구성하는 데 사용되며, 마지막에는 개체를 반환한다. 생성자에 대한 매개변수가 축소되고, 가독성이 높은 메서드 호출로 제공된다. 때문에 선택적 매개변수에 대해 null을 전달할 필요가 없다. 객체는 완전한 상태로 인스턴스화되며, 불변 객체는 복잡한 논리 없이 구축될 수 있다. 코드 라인 수는 두 배 이상으로 증가하지만, 가독성 있는 코드를 작성할 수 있다. 유용한 예시 Member 클래스가 있다고 가정하자. name, age, email, phone 필드를 갖고 아래의 특성을 갖는다. 한 번 생성되면 읽기만 가능해야 한다.. 2022. 10. 15. [Java] StringBuilder의 사용과 String으로 변환 방법 `String` 객체는 한 번 생성하면 변경이 불가능하기 때문에 `String` 객체끼리 더하는 방법은 메모리 할당과 해제를 발생시키기 때문에 비효율적이다. `StringBuilder`를 사용하면 문자열을 자유롭게 연결할 수 있다.StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("문자열").append("연결"); `String` 타입으로 변환해야 한다면 아래와 같이 `toString` 메서드를 사용한다. String s = sb.toString(); 2022. 8. 13. [Java] StringifyJSON JSONJavaScript Object Notation JSON이란, 서로 다른 프로그램 사이의 데이터 교환을 위해 사용되는 데이터 타입으로, 객체 형태의 포맷이다. 자바스크립트을 포함한 많은 언어에서 범용적으로 사용하는 대중적인 포맷이라고 할 수 있다. 데이터 전송이 가능한 조건 (transferable condition)1. 수신자(reciever)와 발신자(sender)가 같은 프로그램을 사용한다.2. 또는, 문자열처럼 범용적으로 읽을 수 있어야 한다.Map 인스턴스의 참조 변수를 toString() 시도할 경우,Java를 사용하지 않는 프로그램에서는 데이터를 정확히 파악할 수 없다 객체 ↔ JSON jackson 라이브러리의 ObjectMapper클래스를 사용하여 JSON형태로 변경하기 .. 2022. 7. 22. 스레드(Thread) 스레드란? 싱글 스레드 vs. 멀티 스레드 스레드 생성 방법 두 가지 스레드 실행 스레드 동기화 스레드 상태 이해, 제어 스레드란? 프로세스: 실행 중인 애플리케이션 = 데이터 + 컴퓨터 자원 + 스레드 스레드: 데이터와 애플리케이션이 확보한 자원으로 코드 실행, 이 흐름 메인 스레드(Main thread) 싱글 스레드 프로세스: 메인 스레드만 가진다 멀티 스레드(Multi-Thread) 동시 작업 가능, 여러 코드를 각 스레드에 분배하여 동시에 실행시킬 수 있다! 다수의 클라이언트 요청을 처리하는 서버를 개발할 때 사용 ex) 메신저 애플리케이션: 메시지를 주고받으며 파일 업로드 가능 스레드의 생성과 실행 메인 외 별도의 작업 스레드를 활용한다? = 작업 스레드가 수행할 코드 작성, 생성, 실행 → r.. 2022. 7. 19. 파일 입출력(I/O) InputStream, OutputStream Stream: 단방향으로만 데이터 전송 가능 File을 다룰 때: FileInputStream / FileOutputStream 프로세스를 다룰 때: PipedInputStream / PipedOutputStream FileInputStream //문자열 code가 입력된 파일 생성 //src 폴더 상위에 있어야 한다 echo code >> codestates.txt FileInputStream fileInput = new FileInputStream("codestates.txt"); BufferedInputStream 보조 스트림: 성능 향상 버퍼: 바이트 배열, 여러 바이트를 저장하여 한 번에 많은 데이터를 입출력할 수 있도록 돕는 임시 저장 공간 Fil.. 2022. 7. 18. 이전 1 2 3 다음