java 6

[투두메이트 프로젝트] 공통 응답(Response) 객체 만들기

4/9 작성 투두메이트 프로젝트를 진행하던 중, 요청을 보냈을 때 성공이든 실패든 너무 단순한 응답만 받으니 직접 로그를 확인하는 등 디버깅에 불편을 느꼈다.에러가 나면 항상 같은 에러 메세지만 출력되고, 어떤 문제가 발생했는지 알기 위해선 로그를 직접 뒤져야 했다.요청이 성공해도 200OK만 떠서, 어떤 요청이 성공한 건지 명확하지 않았다. 혼자 개발하는데도 이렇게 불편한데, 협업 환경에서는 더 불편하겠다 싶었다. 남이 짠 코드를 테스트하거나 디버깅할 때 불필요하게 시간을 낭비하게 될 것 같다는 생각이 들었다...그래서 응답 객체를 통일해서 클라이언트와 서버 간의 소통을 더 명확히 하자는 생각이 들었다.이 글에서는 그렇게 만들게 된 공통 응답 Response 객체에 대해 정리해보겠다. 기존 postma..

토이프로젝트 2025.05.02

[Java] 자바 빌드와 실행

빌드(build)(!= 실행)소스 코드 파일을 여러 과정을 거쳐 컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정*독립 SW 가공물 = Artifact 내가 만든 소스코드 파일들을 독립적인 하나의 파일(독립 SW 가공물 = Artifact)로 만들어내는 것소스코드 파일을 Artifact로 만드는 과정이다 빌드 세분화1) 소스코드 컴파일2) 테스트 코드 컴파일3) 테스트 코드 실행4) 테스트 코드 리포트 작성5) 기타 추가 설정한 작업 진행6) 패키징 수행7) 최종 SW 결과물 (Artifact) 를 만듦 테스트코드: 내가 작성한 코드를 자동 테스트해주는 코드를 추가로 작성한 것패키징: 자바 라이브러리 외에 다른 사람이 만들어 놓은 오픈 소스를 사용하게 되는데, 이 오픈 소스들을 내가 만든 코..

자바 공부 2025.02.27

[Java] Java 개발 환경을 세팅하자

Java 유료화 이슈?자바 언어 자체는 오픈소스이나, 오라클에서 JDK(자바로 작성된 프로그램을 컴파일하고 패키징 해주는 역할)를 유료화하겠다 발표.기업용 대상으로 JDK 라이센스를 유료화 모델로 전화함하지만 모든 기업, 개인이 유료로 사용해야 하는 것은 아니다. 오픈 JDK: 오라클에서 공개한 소스로, JDK의 가장 밑바탕이 되는 소스들이 공개된 소스를 가지고 어떻게 구현하느냐에 따라 각 기업마다 다른 스타일을 갖는 JDK를 갖게 될 것오라클은 이 오픈 JDK를 기반으로 자신들의 기능을 추가하여 그를 상용화 및 배포하는 것이지, JDK 코어에 대해 유료화한 것은 아니다. 내가 사용할 것은 이 JDK 오픈소스 Java 17 설치https://www.oracle.com/java/technologies/do..

자바 공부 2025.02.17

[Java] 자바의 작동 원리 및 JDK, JRE에 대해 알아보자

Java는 어떻게 동작하는 언어인가?인간의 언어로 만들어진 소스코드(.java 파일)를 컴퓨터가 알아들을 수 있는 형태(1010...의 디지털 코드)로 변환해야 함.Java 컴파일러가 나의 소스코드를 바이트 코드(.class 파일)로 변환한 후, JVM에 올려 자바 프로그램을 실행한다.*컴파일: 인간의 언어를 기계어로 번역하는 과정 JVM이란? Java Virtual Machine (자바 가상머신)- 자바 프로그램이 실행되는 가상의 공간- OS별로 존재- 바이너리 코드를 읽고 검증하고 실행- 운영체제와 관계 없이 JVM이 구성되어 있는 곳에서는 모든 곳에서 동일한 코드로 작성된 Java 프로그램을 실행할 수 있다.- 자바가 등장하기 전에는 운영체제 별로 소스를 바꾸어야 했다. - 자바가 등장하면서, 한 ..

자바 공부 2025.02.17

[자바] ArrayList라는 클래스에 대하여

(백준 1092의 코드 참조)일반 배열과는 다르게, 동적 배열을 구현한 클래스이다.처음 선언 시 배열의 크기를 지정할 필요가 없이, 요소를 추가하거나 제거할 때 자동으로 크기가 조정된다. 또한, 배열처럼 인덱스를 사용하여 요소에 빠르게 접근할 수 있으며,동적 배열에서 한 요소를 제거해도 요소를 추가한 순서를 유지한다.ArrayList는 동기화되지 않으므로, 멀티스레드 환경에서는 Collections.synchronizedList 메서드를 사용하여 동기화된 리스트를 만들어야 한다. 초기 선언import java.util.ArrayList; ArrayList box = new ArrayList(); 오름차순 정렬 Collections.sort(box); 주요 메서드add(값)값을 리..

자바 공부 2024.08.01

1105 팔

자바 / 실버 1 / 그리디 알고리즘https://www.acmicpc.net/problem/1105 알고리즘을 생각하고 나서는 쉽게 구현할 수 있었다. 그런데 생각을 좀 얕게 했던 탓인지... 여러 반례가 많이 발견되어 3트 정도 했다. 주요 코드는 다음과 같다.if (L.length() == R.length()){ for(int i = 0; i  알고리즘자릿수가 다르다면, 답은 무조건 0이므로 비교할 필요가 없다.자릿수가 같다면, 각 수의 맨 앞자리부터 같은 지를 비교하며 8의 개수를 센다.같지 않은 자리가 등장는 순간 반복문을 종료한다.  구글링을 통해 참고했던 여러 반례들8181 8282 -> 답: 11280 1281 -> 답: 1883812 883803 -> 답: 38880 ..

알고리즘 2024.07.17