Languages

    [Kotlin] Unzip a file with subfolder / subdirectory

    문제 압축파일을 해제해야 한다 (.zip 파일) 하위 폴더가 존재하는 압축파일이다. 과정 엔트리의 상위 디렉토리 만들어주는 함수까지 파다가 다시 이럴리가 없다며 정신차리고 자바소스코드 보고서 긁어다 테스트하니까 바로 돌아갔다. 좀 허무... 그대로 쓰기엔 너무 자바스러워서 코틀린 소스로 재작성하였다. 인터넷에 있는 파일압축, 압축해제 예제들은 각기 다른 상태의 압축파일에 대한 예제이기 때문에 (단일 파일을 압축한 zip파일, 파일들만 압축한 zip파일, zip파일을 재압축한 zip파일 등등...) 내가 필요한 예제를 잘 찾아내야 한다. 코틀린같은 경우에는 참고할 예제가 그리 많지 않아서 java 소스를 참고하여 재작성하였다. 결과 fun unZip(zipFilePath: String, targetPath..

    [Kotlin] Content is not allowed in prolog.; HTTP header setting error

    Tableau api를 활용하여 개발 중, json 형태의 데이터를 보내 응답을 받아야 하는데 아래 오류가 뜨는 경우 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: [{"error":{"summary":"Bad Request","detail":"Deserialization problem: Content is not allowed in prolog.; ","c..

    [Kotlin] Open API 호출해서 데이터 가져오기

    알파버전 프로젝트에 코틀린을 적용해보자는 이야기가 나와서 코틀린을 들여다 보느라 하루가 다 갔다. 우선 외부 데이터를 끌어다가 출력하는것까지 시도했다. 다른 분이 자바로 예제를 올려두신 걸 보고 코틀린으로 옮겨 적었다. 너무 옮겨적은 것 같으니 프로젝트 진행하면서는 좀 갈고 닦아봐야 할 것 같다. ▼ 우선 gradle에 dependency를 설정했다. dependencies { implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spri..

    [TypeScript] Non-null assertion operator, rxjs 설치 명령어

    angular 강의를 듣던 중 그대로 따라쳤는데 오류가 났다. import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { Observable, ObservedValueOf } from 'rxjs'; import 'rxjs/add/operator/map'; @Component({ selector: 'app-developer', templateUrl: './developer.component.html', styleUrls: ['./developer.component.scss'] }) export class DeveloperComponent implements OnInit ..

    [Apache Echarts] Bar race 작동 오류

    과제를 진행하면서 Echarts를 사용해보게 되었다. 가로형 바 차트 중 Bar race라는 차트가 멋져보여서 사용해보고 싶었는데 몇가지 오류가 발생했고, 고쳐지지가 않았다. 내가 소스코드를 잘못 사용하는건가 싶어서 Echarts Example 사이트에서도 수정해가며 지켜봤는데.. 음... option = { xAxis: { max: '100', }, yAxis: { type: 'category', data: medDeptNmList, inverse: true, animationDuration: 300, animationDurationUpdate: 300, max: 6 // only the largest max+1 bars will be displayed }, series: [{ realtimeSort:..

    [Spring] Multiple Pagination / 멀티페이징, 더블페이징

    파이널 프로젝트를 진행하면서 Multiple pagination in one page, 즉 한 페이지 내에서 더블 페이징 처리를 해야 할 일이 생겼다. 조금 찾아보니 과거에는 iFrame을 이용했지만 현재는 접근성에 위반되어 사용하지 않는다고. 생각해 보면 장바구니에서 선택한 상품만 하단의 구매리스트에 뿅뿅 뜨게 하는 걸 어디서 보았던것도 같고, 실무에서도 많이 쓰지 않을까? 라는 생각이 들어 시간이 촉박했지만 매달려서 구현한 부분이다. js파트가 영 맘에 안 드는데 조만간 포트폴리오를 정리한 후에 코드 정리가 좀 필요할 것 같다. 중복되는 소스가 너무 많아서... (._. 마음이 불편하다. 잘 정리하면 한 페이지에서 여러개의 페이징처리를 해도 코드가 많이 늘어나지 않도록 할 수 있을 것 같다. [Vie..

    List의 요소 제거에 람다식 적용 removeIf()

    List요소를 받아오는데 앞단에서 input 3개를 무조건 받아오게 되어있어서 1개나 2개만 받아오면 null포인터 익셉션이 떴다. 컨트롤러에서 삭제해주려고 했더니 ConcurrentModificationException이 뜨는 것. 이 익셉션은 이미 다른 파트에서 경험해 본 적이 있는데, 자바의 정책 중 fail-fast라는 정책이라고 한다. 당시 iterator를 사용하여 remove()한 적이 있는데 이번엔 NoSuchElement라고 뜨면서 그게 안 먹히는 것. 엘리먼트가 널값이라 그런게 아닐까 추측. 방법을 좀 더 찾아보다가 JAVA 1.8부터 적용된다는 람다식을 이용한 분이 있길래 따라해보았다. 코드도 간단하고 결과도 잘 나왔다. 넘 좋다.ㅠ_ㅠ //포지션 등록 승인 요청, 임시저장 @Requ..

    [JavaScript] 자식 요소 개수 카운트

    동적으로 생성한 Div에서 카운트 체크해주기 위해.. 자식 요소 개수 세기. 가끔 쓸 데가 있을 거 같아서 남겨둔다. var jikmuDivs=document.getElementById('positionAdd-selectedJikMuBoundDivs'); console.log(jikmuDivs.childElementCount); if( jikmuDivs.childElementCount < 1 ){ alert('직무를 한 개 이상 선택하세요.'); $('#positionAdd-jikgun').focus(); return false; }

    [eclipse] 에러 org.springframework.beans.NotWritablePropertyException: Invalid property 'pdService' of bean class [com.pd.controller.PdWriteController]: Bean property 'pdService' is not writable or has an invalid setter method. Did you mean 'pdSerivce'?

    보통 Controller 파일 내에서 선언한 pdService객체의 이름과 빈에 작성한 아이디값이 다를 때 생기는 오류. 근데 다 봐도 진짜 오타 잡기 힘들다 이건... 심각: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pdWriteController' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritableProp..

    [eclipse] 500에러 - java.lang.IllegalStateException: Optional int parameter 'no' is not present but cannot be translated into a null value

    @RequestParam에 int값이 오는 경우에, url에서 null값인 상태로 들어오면 나타나는 에러. 예를 들어 /com? 으로 끝나면 이런 상태가 된다. 간단하게는 dafaultValue="0"으로 막을 수 있다. 만약 ?no= 까지만 끊긴다면 ?뒤를 split해서 length가 4보다 작은 경우를 따져서 분기처리할 수 있겠다. java.lang.IllegalStateException: Optional int parameter 'no' is not present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the..