목록전체 글 (75)
ㅇ.ㅇ

Utils는 아는만큼 더 빠르고 간편하게 코드를 작성할 수 있는 것 같다. 하나하나 일일이 찾아보지는 못하니까 우연히 알게되면 나중에 사용할 수 있도록 정리를 해보려고 한다. 오늘의 주인공은 FilenameUtils이다. 개념우선 FilenameUtils가 들어있는 Apache Commons IO는, 자바 언어를 위한 오픈소스 라이브러리로 다양한 기능을 제공한다. 이 라이브러리를 사용하면 파일 및 디렉토리 관리 작업을 더욱 쉽게 처리할 수 있으며, 그 때문에 다양한 자바 프로젝트에서 많이 사용되고 있다. FilenameUtils 클래스는 파일 경로, 파일명, 확장자 등을 다루기 위한 여러 유틸리티 메서드를 제공한다. 특히 Windows에서는 \를, Unix 계열 시스템에서는 /를 경로 구분자로 사용하는..

소켓통신을 구현하여 broadcasting으로 클라이언트에게 데이터를 보내는 중 json 형식이 깨지는 것을 발견하였고, 그것을 수정하는 과정에서 에러가 발생하였다. 막상 타입문제는 아니었지만 함께 적어본다.상황웹소켓에서 스케줄링을 하면서 브로드캐스팅으로 계속 데이터를 보내고 있는 상황이다. 그렇지만 여러 스케줄러가 하나의 'broadcast' 메소드를 호출하면서 충돌이 난 것을 확인하게 되었다.에러 내용The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method문제 원인스레드 동기화해당 에러는 원격서비스가 현재 텍스트 작성중인 상태로 '호출하려는 메서드에는 유효하지 않은 상태'인 경우에 ..

의문자바에서 말하는 Utility Class가 무엇일까? 뭔가 디렉토리상에도 자주 보이고, 가끔 내가 사용하기도 하지만 구체적으로 어떤 역할을 하는지, 어떤 형식을 가지는지 잘 몰랐기 때문에 정리해보려고 한다.답(1) 유틸리티 클래스란?인스턴스 메서드와 인스턴스 변수를 제공하지 않고, 매개 변수에 대해 작업을 수행하는 정적 메서드와 변수만을 제공하는 클래스Static 클래스, Stateless로 사용, 멀티스레드 환경에서 thread-safe대부분 final로 선언되어 상속될 수 없고, 생성자는 private으로 선언되어 초기화 가능성을 막는다(2) 유틸리티 클래스 사용 시 문제점강한 결합유틸클래스를 사용하는 클래스는 유틸클래스에 강한 의존성을 갖게 된다. 추상화 진행이 없으므로 유틸클래스 변화는 해당 ..

https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어 있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다.컴퓨터의 개수 n, 연결에 대한 정보가 담긴..

상황하나의 서버에 2개의 서비스 각각 설치 후 둘 다 한번에 접속하면 접속이 되지 않는 에러가 발생하였다고 문의가 들어왔다.테스트 환경tomcat : 각각 다른 톰캣 사용port : 각각 다른 포트context path : 두개 모두 동일 (같은 서비스이기 때문)DB : 각각 다른 DB 환경해결 과정우선 접속은 되는 것까지 확인하였는데 하나의 서비스에서 로그인 되었을 시, 다른 쪽 서비스에서 로그인이 풀리게 되어버렸다. 개발자 도구의 쿠키 세션값을 확인해보니 동일한 값을 가지고 있는 것을 발견하였다! 구글링을 해보니 모두 jsessionid의 충돌문제이고 대부분 로그인이 풀리는 동일한 문제를 겪고 있었다. 그래서 나도 처음에는 구글에서 제일 많이 나와있는 tomcat 설정 변경을 시도해보았다.(1) to..

https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr '큰 수 만들기' 문제로 탐욕법이 대략 어떻게 생겼는지 안 상태에서 문제 풀기를 시작했다. 문제 설명무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 ..

상황예전 브랜치에서 작업했던 내용들을 깃 cherry-pick을 사용해서 가장 최신 브랜치를 기준으로 커밋하는 작업을 하고 있었다.에러 내용org.springframework.beans.NotWritablePropertyException: Invalid property 'maxWait' of bean class [org.apache.tomcat.dbcp.dbcp2.BasicDataSource]: Bean property 'maxWait' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?문제 원인이 에러는 BasicDataSource 클..

상황javascript로 작성된 aesUtil 파일을 rust 파일로 변환 후 encrypt 된 값을 받아와 자바에서 decrypt 하는 과정 중에 에러가 발생하였다. 에러 내용org.apache.commons.codec.DecoderException : Illegal hexadecimal character q at index 0문제 원인에러내용 자체를 파악해보자면, 인덱스 0자리에서 16진수 문자열에 맞지 않는 'q'가 들어갔다는 에러이다. 당연하다. 왜냐하면 16진법 문자열은 0부터 9까지의 숫자와 A부터 F까지의 알파벳 대문자로 구성되기 때문에 'q'는 포함되지 않는다. 따라서 코드를 검토하고 유효하지 않은 16진수 문자를 찾아 수정해야지 에러를 수정할 수 있다.결론은 javascript로 작성된 ..