전체 글 썸네일형 리스트형 LocalDate 와 String 오늘 작성한 알고리즘 문제는 개인정보 보호기간에 대한 문제였다. String -> LocalDate 가장 먼저 시작한 문제는 today가 제공되는데 반해서 데이터의 형식이 "yyyy.MM.dd" 형식의 String으로 제공한다는 점이였다. 기본 LocalDate 타입의 형태는 "yyyy-MM-dd" 타입이기 때문에 LocalDate.parse(today) 를 사용하면 런타입 오류가 발생하였다. Why error? 무엇으로 인하여 오류가 생기는가 하면 변환하려는 String의 형태 때문였다. 위에서 언급했듯이 "." 을 기준으로 구분하기 때문에 "-" 형태로 구분하는 LocalDate와 형태가 달라 바로변환하는 것이 불가능 하기 때문이다. 그렇다면 어떤 방식을 이용하여야 할까? DateTimeFormatt.. 더보기 Java 알고리즘 학습 신나는? 알고리즘 오늘은 알고리즘을 통해 아스키 코드를 활용하는 방법을 중심으로 문제를 해결햇다. 아스키 코드 아스키 코드란, "미국정보교환표준부호" 라고하며 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 예를 들어 int 97이 있다고 할때, 이는 (char) 97을 통해 변환하면 a 라는 알파벳이 나오는 것을 말한다. 이에따라 List alphabet = new ArrayList(); for (int i = 97; i + index 생락된 글자에서 +1 씩 하는 것을 통해 풀었다. 더보기 JavaFx Scene Builder와 fxml Scene Builder 현재 배우면서 가장 흥미로운 것은 scenbuilder이라는 프로그램을 활용해서 구성하는 프로세스이다. 해당 부분이 흥미로운 이유는 드래그 & 드랍을 통해 화면을 구성한다는 점과, 이벤트 처리이다. 화면을 구성할 때, 로우코드나 노코드 툴처럼 끌어다가 외형을 형성하고 controller를 통해 지정된 api를 이용하여 해당 버튼을 눌렀을 때, 어떤 식으로 움직이는 지 보이는 것이 매우 흥미로웠다. 이벤트 처리 API를 구성할 때, Spring에서는 Controller의 지정된 url주소를 실행하지만, 반대로 Fx의 경우 Action으로 지정하여 api의 이름을 통해 버튼의 이벤트를 처리하는 방식이 뭔가 익숙하면서도 다른 느낌이였다. 이에따라 객체 또한 설정한 이름에 따라 Mode.. 더보기 JavaFx이용 JavaFx? JavaFx란, Java swing을 대체하기 위한 것으로 이전에 사용하려고 한 JFrame과 비슷하게 Gui를 제공하는 프레임워크이다. JFrame은 JavaFx이전에 나온 프레임워크로 Gui를 제공하는 점에서 유사하지만, 성능이 Fx보다 낮다는 것이 중점이다. API도 구식이며, 성능도 떨어지며 확정성 또한 낮다, 즉, 이에따라 그래도 모양세 있는 게임을 만들고 싶었기 때문에 JavaFx를 사용하려고 마음을 먹었다, Stage, scene, node 오늘 학습에서 가장 중요한 지점을 뽑으라고 한다면 3단계 레이어인 해당 부분이였다. Stage Stage는 가장 상위 레이어로 프로그램 자체의 환경을 말한다고 볼수있다. 즉, Stage 내부에 scene를 넣어서 작동시키는 것이 JavaFx.. 더보기 JFrame을 이용한 .exe프로그램 만들기 - 1 Java Gui Thinking? 자바를 이용해서 실행 파일을 통해 게임을 만들수 없을까? Spring을 배우면서 Java를 접해 알고있는 사용법은 웹개발에 치중돼있었다. 즉, 자바라는 프로그래밍 언어 보다는 Spring이란 프레임워크에 더 익숙해 있었다. 그런 이유에서 실행 파일로 해보고 싶다 라는 생각에서 뭔가 없을까? 라는 간단한 마음에서 시작했다. JFrame Answer! 자바에서 클라이언트 처럼 표현 사실 이런 표현이 맞는지는 잘 모르겠다. 그러나 현재의 내가 아는 말로 표현하자면 Java파일을 통해 클라이언트 처럼 표현한다는 정도로 언급 가능하다고 생각한다. 일단은 창이 뜨니까... 그런 이유에서 오늘은 간단하게 유튜브와 블로그를 보면서 어떤 식으로 창이 켜지고, 버튼을 추가하는지 방식에 대.. 더보기 알고리즘 풀이 - 자료구조 달리기 시합 알고리즘 오늘은 알고리즘을 풀면서 자료구조에 대한 여러가지 생각을 했다. 기본적으로 사용하는 List를 바탕으로 set, map을 이용하여 문제풀이를 시도하였다. - 처음 시도 최초로 시도한 방식은 주어진 배열을 List를 사용하여 .remove를 통해 삭제하고 .add를 통해서 값을 추가하는 방식을 통해서 결과를 도출하려 하였다. 이를 통해 주어진 예시와 같은 결과를 얻을 수 있었다. 실패 이유 하지만 결과를 해보니 케이스 9~13애서 시간초과로 오류가 발생했다. 이 근본적인 원인은 처음 순서를 알기위해서 indexOf를 사용하여 순회를 하였기 때문에 자료가 길고, 후순위에 있을 수록 오래걸리기 때문에 성공에서도 6000ms 이상의 사싱이 걸리는 케이스가 있었다. 즉, 이를 개선하여야 할 .. 더보기 기능 구현 - 비회원 기능 "비회원 해줘" 우리 프로젝트의 주된 기능 중 하나인 비회원 기능... 사실 해야하는 건 알았지만 어떤 식으로 해야하나? 라는 식으로 고민하다 뒤로 미루고 미루다 " 이제 슬슬 비회원 해야지요? 해줘! " 라는 느낌으로 시작하게 되었습니다. 기능 선택 그렇다면 어떤 식으로 구현할 것인가 라는 문제의 쟁점이 생겼다. 여러가지 방식이 있겠지만 그 과정에서 찾아본 방식은 2가지이다. 세션을 활용한 방식, 레디스를 활용하여 사용하는 방식 이렇게 2가지이다. 세션 현재 JWT를 이용한 회원인증 방식을 사용하고 있기 때문에 세션을 활용한다는 점에서 뭔가 이상함을 조금 느끼긴 했지만 찾아보니, 유저의 권한과 비유저의 권한을 비교하는 방식에서는 자주 이용하는 방식이라고 한다. 그러나 해당 방식은 프론트 측에서, 세션을.. 더보기 트러블 슈팅 - 중복 저장 문제 문제 발생 - 막 여러개 씩 저장 가능한거 같아요! " 맥북에서 사용하는데 문제를 저장하려고 하면 2개씩 저장되는거 같다는 말을 들었다. 때문에 이를 직접 사용해보니 급하게 와다다다 누르면 중복으로 저장되는 것을 알 수 있었다. 위 사진이 바로 그 예시인데, 연속으로 클라이언트에서 클릭하면 많이 나온다는 것을 알 수 있다. 즉, 같은 것을 보내려고 하는데 클라이언트가 화면 전환이 되기전에 연속적으로 클릭이 된다면 api가 추가적으로 요청된다는 것이다. 이는 서버에 불필요한 데이터를 남기는 것이며, 필요이상으로 요청이 많이 들어가는 경우가 생기기 때문에 해결해야 할 문제였다. 해결방안 - 락 걸어두기 (스레드 슬립, RateLimiter, 버킷) 결국 위의 문제를 해결하려면 요청에 제한을 두는 것으로 방지.. 더보기 이전 1 2 3 4 ··· 7 다음