본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


분류 전체보기677

리코일 set, get 그리고 async(recoil get set async) 리코일에서 제공하는 함수 중 셀렉터(selector)가 있습니다. 요녀석은 리코일의 set, get 기능을 편리하게 사용 할 수 있게 해주는 기능 입니다. 또한 다양한 리코일의 상태(atom)을 키 값을 통해서 반환 하기도 합니다. 이번에 만난 이슈는 리코일의 셀렉터(selector)를 활용 할 때의 동기화 이슈 였습니다. 아래와 같이 세션 스토리지에 간단하게 사용자 정보를 저장하는 기능을 구현 하였습니다. import { atom, selector, } from "recoil"; import { recoilPersist } from 'recoil-persist'; //yarn add recoil-persist //리코일 상태값을 "sessionStorage" 에서 적용하게 합니다. const { per.. 2023. 3. 6.
Nio 패키지 TCP 서버 종료 이벤트(Selector, ServerSocketChannel) TCP 서버를 nio 패키지의 클래스를 활용하여 개발하던 중 만난 이슈 입니다. 물론, 서버채널(ServerSocketChannel)은 비동기(configureBlocking 값이 false)인 상황 이였습니다. 네트워크가 끊어진 경우에는 셀렉터의 키 값을 반환(cancle) 하고 체널을 종료(close)를 해 주어야 합니다. 그렇지 않으면 해당 채널은 계속해서 iterator를 통해서 나오기 때문 입니다. 대략 아래처럼 코드를 작성 하였습니다. //생략.. Selector selector; { Iterator it = selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey key = (SelectionKey) it.next(); .. 2023. 2. 15.
MongoDb Maven build 오류(JSONObject, JSONArray) 몽고DB를 사용하여 프로젝트를 하다가 간혹 빌드(Build)를 시도하다 만날 수 있는 오류 입니다. 개발도구에서는 아무이상 없이 잘 돌아가는데 빌드를 하면 패키지가 없다며 오류를 만날 때가 있습니다. 스택오버플로우(stack overflow)를 검색하다보면 해당 문제는 사용중인 라이브러리가 빌드(build) 환경에서는 포함되지 않아서 발생하는 문제라고 쓰여 있습니다. 아래는 JSONObject 클래스를 사용한 pom.xml 내용 입니다. org.springframework.boot spring-boot-starter-data-mongodb 해당 라이브러리를 적용하면 실제 클래스에서의 JSONArray 객체의 패키지명은 아래와 같습니다. import org.springframework.boot.config.. 2023. 2. 2.
Javascript 에니메이션 (svg, canvas, gif)의 렌더링 개발간 반짝반짝(?) 거리는 아이콘이 필요하여 아래처럼 svg를 활용하여 제작을 해 보았습니다. svg 엘리먼트로는 circle과 text 및 animate를 사용 하였습니다. 이렇게 제작한 엘리먼트를 원하는 기능에 붙여서 사용을 하였는데.. 10개 내외정도만 사용할때는 문제가 없었습니다. 그러다가 대략 3,000개 이상을 웹 브라우저에 그렸는데 브라우저가 먹통이 되었습니다. 뭔일인지 보려고 개발도구를 켜 측정을 해보니 아래와 같은 상황이 벌어졌습니다. animate 엘리먼트를 통해서 브라우저에서 지속적인 렌더링이 이루어지다보니... 3천개나 되는 많은 갯수를 감당하지 못하고 메모리소비 + CPU점유가 발생 하였습니다. html canvas를 사용하여도 CPU에서의 연산이 계속 발생하므로 비슷하게 느렸습.. 2023. 1. 13.
[JAVA, JAVASCRIPT] 파일 다운로드 한글깨짐 간단하게 정리한 파일 다운로드시 한글깨짐 현상 방지방법 입니다. 먼저 한글명을 URL인코더를 통해서 인코딩 해 줍니다. * 자바파일 import java.net.URLEncoder; { public String convertFileName(String fileName) { //한글파일 이름을 받아서 try { fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); //인코딩! } catch (Exception e) { e.printStackTrace(); } return fileName; } } 자바에서 URLEncoder 클래스는 일반 문자열을 웹에서 통용되는 'x-www-form-urlencoded' 형식으로 변환하는 역할을.. 2023. 1. 9.
전자정부프레임워크 4.1.0 사용 후기 전자정부 프레임워크 4.1.0이 12월 12일 릴리즈 되었습니다. https://www.egovframe.go.kr/home/sub.do?menuNo=94 개발환경 - 4.x 다운로드 | 표준프레임워크 포털 eGovFrame 처리중입니다. 잠시만 기다려주십시오. www.egovframe.go.kr 베타버전으로 나온거긴한데... 기능 구성이 너무 방대해서 보는 데 몇일 걸릴거 같습니다. 적당히 xml을 읽어서 객체를 생성하여 주는, 그래도 그나마 나름 Spring Boot 같은 프로젝트를 만드시려면 아래 사진처럼 Boot Template Project를 선택하셔야 합니다. 나머지 부트 프로젝트 만들기는 모양은 스프링 부트인데 xml읽어서 환경구성하는 방식으로 되어 있습니다. 전자정부 4.1.0은 2가지 프.. 2022. 12. 30.