본문 바로가기

Study Note/Java169

728x90
Swagger2 #영어 깨짐 현상 해결 Kotlin Spring 환경에 세팅된 Swagger2 화면에서 영어 깨짐 현상이 발견되었다. URI: http://localhost:8080/swagger-ui api/events/... => ​/api​/events​/... UTF-8 인코딩 문제로 의심되어 열심히 찾던 중 의외의 방법으로 해결되었다. URI: http://localhost:8080/swagger-ui/index.html URI에 index.html 를 추가하니 제대로 출력되었다. 참고자료 https://github.com/springfox/springfox/issues/3544 2023. 1. 12.
Spring boot #서버 포트 바꾸기 스프링 부트 서버 포트 변경 방법 경로 : /src/main/resources/ 파일 : application.properties 8090으로 포트 번호 지정 server.port=8090 랜덤으로 포트 번호 지정 server.port=0 참고 사이트 https://stackoverflow.com/questions/21083170/how-to-configure-port-for-a-spring-boot-application 2020. 1. 22.
Java #JSONArray 와 JSONObject로 JSON 생성하기 import org.json.simple.JSONArray; import org.json.simple.JSONObject; ... JSONArray jsonArray = new JSONArray(); JSONObject jsonObject = new JSONObject(); jsonObject.put("key1", "value1"); jsonObject.put("key2", "value1"); jsonArray.add(jsonObject); String jsonString = jsonArray.toJSONString(); //jsonString //=> [{"key1":"value1"}, {"key2":"value2"}] 2020. 1. 14.
Java #원하는 길이의 랜덤숫자 생성 import java.util.concurrent.ThreadLocalRandom; public class HelloWorld{ public static void main(String []args){ System.out.println(getRandomLong(22)); //원하는 길이의 랜덤 숫자 반환 } /** * @description 원하는 길이의 랜덤 숫자 반환 * @param len 반환 받을 숫자의 길이 * @return result 결과 값 */ public static String getRandomLong(int len) { ThreadLocalRandom random = ThreadLocalRandom.current(); String result = ""; for(int i=0; i 2020. 1. 2.
JAVA_ JAR, WAR, EAR 차이점 JAR, WAR, EAR 차이점 ※ J2EE 애플리케이션에서 모듈은 기능에 따라 EAR, JAR 및 WAR로 패키지됩니다. 1. JAR (java archive) : 엔터프라이즈 Java Bean (클래스 파일) 및 EJB 배치 디스크립터를 포함하는 EJB 모듈은 .jar 확장을 갖는 JAR 파일로 압축됩니다. 2. WAR (web archive) : 서블릿 클래스 파일, JSP 파일, 지원 파일, GIF 및 HTML 파일을 포함하는 웹 모듈은 확장자가 .war (웹 아카이브) 인 JAR 파일로 패키지됩니다. 3. EAR (enterprise archive) : 위의 모든 파일 (.jar 및 .war)은 확장자가 .ear (enterprise archive) 인 JAR 파일로 패키지되어 Applicati.. 2019. 9. 12.
JAVA_ Fail-Safe Iterator vs Fail-Fast Iterator Fail-Safe Iterator vs Fail-Fast Iterator Fail-Fast systems은 가능한 빨리 실패를 노출하고 전체 작업을 중지하여 작업을 중단합니다. 반면 Fail-Safe systems은 장애 발생시 작업을 중단하지 않습니다. 따라서 가능한 한 많은 실패를 피하려고 노력합니다. Fail-Fast Iterators Iterator의 remove() 메소드 이외의 코드로 기존 Collection이 수정되면 Fail-fast iterators는 예외가 발생합니다. Collection은 modCount라는 내부 카운터를 유지합니다. Collection에서 항목을 추가하거나 제거 할 때마다 이 카운터가 증가합니다. 반복 할 때 각 next() 호출에서 modCount의 현재 값이 초기.. 2019. 9. 9.
JAVA_ 컬렉션 프레임워크 / HashMap과 Hashtable의 차이점 스레드 동기화가 필요하지 않은 경우 일반적으로 HashMap이 HashTable보다 선호됩니다. HashMap Hashtable HashMap은 동기화가 안됩니다. Hashtable은 동기화가 됩니다. HashMap은 스레드에 안전하지 못합니다. Hashtable은 스레드에 안전합니다. HashMap은 적절한 동기화 코드가 없다면 많은 스레드간 공유가 불가능합니다. Hashtable은 많은 스레드에 공유 가능합니다. HashMap은 하나의 null 키 값과 다수의 null 벨류 값을 가질 수 있습니다. Hashtable은 null 사용이 불가능합니다. HashMap은 JDK 1.2에 추가된 클래스입니다. Hashtable은 오래된(래거시) 클래스입니다. HashMap은 빠릅니다. Hashtable은 느립.. 2019. 9. 8.
JAVA_ cmd 로 java 파일 UTF-8 로 인코딩 후 컴파일하기 javac -encoding UTF-8 Main.java && java Main ※ cmd 를 켜고 자바파일이 존재하는 경로로 이동 후 위처럼 입력 ※ Main : 파일명자리 2018. 11. 8.
JAVA_ Test154 & Test155_ 컬렉션 프레임워크(Collection Framework) / Vector 클래스 접근방법 Test154 컬렉션 프레임워크(Collection Framework) / Vector 클래스 접근방법※ Vector v = new Vector(); → 비어있는 Vector 자료구조 생성 ※ Vector v = new Vector(8); → 8개의 초기 elements 를 가진 Vector 자료구조 생성. 8개가 모두 채워지게 되면(모자라게 되면) 자동으로 확장된다. ※ Vector v = new Vector(3, 5); → 3개의 초기 elements 를 가진 Vector 자료구조 생성. 3개가 모두 채워지게 되면 (모자라게 되면) 5개 증가(확장)된다. ※ 벡터는 데이터 요소로서 정수형, 실수형, 문자열 ... 등을 담아내는 것이 가능하다. → 접근 방법 → 데이터 안정성 확보 -- check~~!.. 2018. 6. 17.
JAVA_ Test153_ 컬렉션 프레임워크(Collection Framework) / Vector(벡터) 클래스 Test153 컬렉션 프레임워크(Collection Framework) / Vector(벡터) 클래스※ Vector(벡터) 자바의 자료 구조 기능을 제공하는 클래스들 중 가장 기본적인 클래스로 배열과 비슷하지만, 배열과는 달리 다른 종류의 데이터 형을 가진 데이터 요소를 가질 수 있으며, 데이터가 가득 차면 자동으로 저장 영역을 늘려주게 된다. 또한 객체 레퍼런스를 저장하기 때문에 JDK 1.5 이전에는 자바 기본형 데이터는 저장할 수 없었으나 JDK 1.5 이후부터는 오토박싱 / 오토 언박싱 기능이 제공되면서 기본 데이터형도 저장이 가능하다. 벡터 클래스의 기본 구조는 시퀀스(sequence) 데이터 구조에 기반하며 시퀀스 데이터 접근을 순차적인 인덱스 값에 대한 위치로 접근하게 된다. 따라서, 자료구.. 2018. 6. 17.