본문 바로가기

전체 글

(69)
SheetJS 사용법 - HTML table을 엑셀로 변환하기 - 삽질중인 개발자 - SheetJS HTML 테이블을 Excel 파일로 만들기 - 웹 개발을 하다보면 HTML 테이블에 그려진 화면을 엑셀 파일로 다운로드 하는 기능을 추가해달라는 요청이 종종 있다. 엑셀 다운로드 기능을 구현하는 방법에는 첫번째로 서버에서 엑셀을 만들어서 다운로드하게 해주는 방법이 있고 두번째로는 브라우저에서 엑셀 파일을 만들어서 다운 받게 하는 방법이 있다. 서버에서 엑셀 파일을 만들게 되면 I/O 작업이 있어 서버의 부하가 생기기에 보통 클라이언트쪽(javascript)에서 처리를 많이한다. 이때 사용하는 자바스크립트 라이브러리가 SheetJS 라는 라이브러리다. 이 SheetJS 라이브러리는 무료버전과 유료버전이 존재하는데 무료 버전에 디테일한 기능은 좀 부족하긴해도 엑셀 데이터를 뽑아주는 기능은 ..
javascript filter 사용법 - 삽질중인 개발자 - JAVASCRIPT filter 사용법 - 자바스크립트의 filter 메서드는 조건을 주고 해당 조건이 참인 요소를 모아 새로운 배열로 반환하는 메서드이다. 배열에서 원하는 데이터만 추출 하고 싶을 때 자주 사용하는 사용성이 좋은 메서드이다. 여기서 잘 기억하고 있어야 하는 부분은 새로운 배열을 반환해준다는 점이다. 또한 filter는 중복값을 제거해주지 않는다. 따라서 중복값이 나올 수 있다. 기본 구문 arr.filter(callback(element[, index[, array]])[, thisArg]) callback : 각 요소에 대한 조건값 element : 처리할 현재 요소 index : 현재 인덱스 array : filter를 호출한 배열 thisArg : callback을 생행 할 때..
Spring boot logging - @Slf4j 어노테이션 사용법 - 삽질중인 개발자 개발을 하거나 운영을 하는 상황에서 LOGGING 은 아주 중요하다. Spring boot에서는 로그를 남기는 방법이 많이 있다. 그중 가장 편하게 사용되는 @Slf4j 어노테이션을 알아보자. SLF4J 란? 로깅에 대한 추상 레이어를 제공하는 인터페이스의 모음이다. (로깅 Facade) 인터페이스를 사용하여 로깅을 구현하게 되면 좋은 점은 추후에 필요로 의해 로깅 라이브러리를 변경할 때 코드의 변경 없이 가능하다는 점이다. application.yml 설정 ( spring boot 2.3.1 ) logging: file: name: ${user.dir}/log/test.log # 로깅 파일 위치이다. max-history: 7 # 로그 파일 삭제 주기이다. 7일 이후 로그는 삭제한다. max-size:..
Envelope pattern(봉투 패턴) - Rest API Design Pattern - 삽질중인 개발자 - Envelope Pattern - 최근 점점 더 많은 서비스들이 Rest API 형태로 개발이 되고 있다. 이런 Rest API를 개발하다 보면 응답 값은 어떤 식으로 넘겨줘야 할 지에 대해서 고민을 하게 된다. 이 포스트에서는 데이터를 캡슐화하는 방법 중 하나인 Envelope Pattern에 대해서 설명한다. 우선 멤버(Member)라는 객체가 있다고 가정을 해보자. public class Member { private Long id; private String name; private int age; } 멤버 객체를 JSON 형태로 표현을 한다면 아래와 같이 나오게 된다. { "id" : 1, "username" : "홍길동", "age" : 15 } 만약 이 멤버를 여러 명을 조회해야 하는 A..
H2 DB 설치 및 사용법 - 삽질중인 개발자 - H2 DB 설치 및 사용방법 - 1. H2 database 다운로드 후 설치 H2 Database 홈페이지에서 all download-> Last Stable 버젼 다운로드 2. 압축을 풀고 OS에 맞는 실행파일 실행 (h2.bat or h2.sh) 3. 실행이 되면 인터넷 브라우저가 실행되는데 해당 IP 주소에서 localhost로 변경해준다. http://IP주소:8082/login.jsp?jsessionid=d6ea708cd06ce124372296a97ad566a2 -> http://localhost:8082/login.jsp?jsessionid=d6ea708cd06ce124372296a97ad566a2 이때 jsessionid 는 건들지 말기 -> 파일 모드로 파일은 만들기 위해 세션 키값이 ..
HTTP 구조 정리 - 삽질중인 개발자 - HTTP 구조 정리 - 개발을 하게 된다면 외부 API를 사용해야하는 경우가 많이있다. Rest API는 HTTP 구조로 되어 있어 HTTP 구조에 대해서 모르면 삽질을 많이 할 수 도 있어서 정리한다. 1. HTTP란 HyperText Transfer Protocol 의 약자 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 통신 규약 서버간 네트워크 통신시 어떠한 형식으로 통신할지에 대해 정해둔 규약 2. HTTP 메세지 기본 구조 기본적인 HTTP의 구조는 아래와 같다. 시작 라인 Response인지 Request 인지에 따라 약간 형태가 다르다. 헤더 header-field: field-value 으로 구성되어 있다. HTTP 전송에 필요한 모든 부가정보를 가지고 있다. 메시지 본문 메세지..
검색어 자동완성 - typeahead 사용법(일반, ajax) - 삽질중인 개발자 - typeahead 사용법 정리 - typeahead는 검색어 자동완성 기능을 제공하는 자바스크립트 라이브러리다. jQuery에 있는 autocomplete 도 있는데 둘 다 사용해보니까 typeahead가 사용법이 간단해 괜찮은 거 같다. 우선 typeahead 를 사용하기 위해서는 링크에서 typeahead를 다운로드한다. 다운로드한 파일 중 사용하게 될 파일은 typeahead.bundle.js 이다. jQuery 기반 라이브러리라 jQuery가 필수다. typeahead는 따로 기본 CSS가 없어서 아래의 Style Sheet를 복붙 한다. 1. typeahead 기본 사용법 typeahead 는$.typeahead( 플러그인에 대한 설정, 결과 데이터에 대한 설정 )으로 옵션을 구분한다. 다른..
Zulu OpenJDK 11 (LTS) 다운로드 및 설치 방법 - 삽질중인 개발자 Oracle JDK 가 유료로 전환됨에 따라 무료로 JDK를 사용하고 싶다면 기존 Oracle JDK를 OpenJDK로 변경을 해야한다. OpenJDK의 벤더는 여러곳이 있는데 그중 TCK 인증이 된 Zulu의 OpenJDK를 설치하는 방법이다. 다운로드 방법 1. Zulu 홈페이지에 접속한다. 2. 왼쪽 상단에 있는 Download Zulu을 클릭한다. 3. Java Version 에 Java 11 (LTS) 선택 후 OS 선택후 자신에 맞는 msi 파일 다운로드 4. 설치 후 CMD에서 java -version 입력후 아래와 같이 OpenJDK가 나오면 된다. openjdk version "11.0.9.1" 2020-11-04 LTS OpenJDK Runtime Environment Zulu11.43..