Programming 86

Java) POI 활용해 DB데이터 엑셀 파일로 저장하기

사용자에게 요구 데이터를 보여 주는 방법은 여러가지가 있습니다. 보통은 웹 페이지를 통해 화면을 보여주는데요, 사용자가 해당 내용을 확인하기 위해서는 항상 해당 웹 페이지에 방문 해야만 하며, 인터넷에 연결되어있어야만 한다는 제약이 생깁니다. 그래서 파일로 조회 데이터를 저장하고자 하는 수요는 반드시 생기고, 그 수요를 충족시키기 위한 여러가지 라이브러리들이 나와 있습니다. 그 대표적으로 Apache POI가 있습니다. ​ Apache POI (Poor Obfuscation Implementation) https://poi.apache.org Apache POI는 아파치 소프트웨어 재단에 의해 운영되는 오픈소스 프로젝트 입니다. 순수 자바 라이브러리로서 Microsoft Office의 Word, Powe..

Programming/Java 2021.10.15

이제는 Cookie 대신 Web Storage 가 대세

이제는 Cookie 대신 Web Storage 가 대세 ​ HTML Web Storage 참고자료 : https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API 웹 스토리지를 이용하면 웹 어플리케이션은 데이터를 사용자의 브라우저에 내부적으로 저장 할 수 있습니다. HTML5 이전에는 어플리케이션의 데이터가 Cookie 에 저장되어야 했는데요, 그로 인해 매번의 서버에 대한 요청마다 포함되어야 했었습니다. 웹스토리지는 더 보안상 안전하며 훨씬 큰 데이터를 저장 할 수 있습니다. 심지어 웹사이트의 퍼포먼스에도 전혀 영향을 주지 않습니다. ​ Cookie는 브라우저마다 최대 갯수와 최대 사이즈가 미묘하게 다르기는 하지만, 일단 최대 4096 bytes의..

JPA) 데이터베이스 스키마 자동 생성

참고 강의 : 우아한 형제들 김영한 팀장님 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ​ hibernate.hbm2ddl.auto hibernate 에서는 해당 프로퍼티를 설정 함으로서 SessionFactory 가 생성 될 때 스키마 DDL(Data Definition Language)을 검증하고 내보낼 수 있습니다. hibernate.dialect 속성을 통해 데이터베이스에 적절한 DDL을 생성 하는데 이렇게 생성된 DDL은 개발 단계에서만 사용하는게 좋습니다. ​ hibernate.hbm2ddl.auto 속성의 value 에 들어 갈 수 있는 값은 아래와 같습니다. 옵션 하는일 create 기존 테이블을 삭제 한 뒤에 새로 생성 create-..

H2 데이터베이스를 이용해 JPA 실습해보기

인프런에서 우아한 형제들 김영한님의 JPA 강의를 학습하며 내용을 정리 해 보았습니다. 해당 강의를 들어보시길 추천합니다. https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ​ H2 데이터베이스는 자바기바느이 오픈소스 RDBMS(관계형 데이터베이스 시스템)입니다. 인메모리 DB 기능을 지원하며 굉장히 용량도 작고 가볍게 동작하기 때문에 번거롭게 데이터베이스를 구축 할 필요 없이 손쉽게 실습을 할 수 있어 편리합니다. ​ H2 DATABASE 설치 아래의 공식 사이트에서 다운 받습니다. 저는 MacOS 를 사용중이기 때문에 All platforms 를 클릭 해 다운 받았습니다. https://h2database.com ​ 이후 적당한 폴더에 위치 시킵니다...

스트림 (Stream)

스트림이란 ? https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html ​ Stream이 추가 되기 전인 Java 7 버전 까지에서는 많은 수의 데이터들을 다룰 때에 컬렉션이나 배열에 데이터를 담아 둔 후, 원하는 결과를 얻기 위해서 반복문 혹은 Iterator를 이용하는 방법 만으로 코드를 작성 해 왔습니다. package com.tistory.shanepark.stream; public class Stream01 { public static void main(String[] args) { int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for(int n : numbers){ System.out.println(..

Programming/Java 2021.09.05 (1)

제발 한국인이라면 자바스크립트 Object를 Map 처럼 사용하지 맙시다.

제발 한국인이라면 자바스크립트 Object를 Map 처럼 사용하지 맙시다. ​ Photo by Steve Johnson on Unsplash. ​ 1. Introduction 오늘 코딩하던 중에 Javascript 에서 만든 Map을 Controller 쪽으로 어떻게 넘길지에 대해 고민 하는 일이 있었습니다. JavaScript 에서는 Object 를 사용하면 왠만하면 다른 언어에서의 Map 과 유사하게 사용 할 수 있기 때문에 딱히 Map을 사용 해 본 적이 없었는데요. ​ 특히 나중에 자바에서 스프링 부트에서 제공하는 JsonParser 를 이용하면 JSON 데이터를 List 아니면 Map 으로 Parsing을 하더라고요. Object 형태로 보내지 않고 Map을 Marshalling 해서 보낸다면 ..

Programming/Javascr¡pt 2021.09.02 (3)

람다식 (Lambda Expression)

람다식 (Lambda Expression) ​ Lambda는 2014년 3월 18일에 발표한 java 8에서 추가된 대표적인 기능입니다. 자바에 대한 함수형 언어의 기능 요구가 끊임없이 있어 왔고, 객체지향언어인 자바가 함수형 언어의 기능까지 갖추게 하는 일은 쉽지 않았을 테지만 그 어려운 일을 똑똑한 개발자들이 해준 덕분에 우리는 이 좋은 기능을 사용 할 수 있게 되었습니다. ​ 람다식이란? 람다는 간단하게 말해서 메서드를 하나의 식으로 표현 한 것입니다. 람다식은 함수를 간략하면서도 명확한 식으로 포현할 수 있게 해줍니다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없기 때문에 람다식을 "익명함수" 라고 부릅니다. 객체지향 언어인 자바에서는 method라는 용어를 사용하는데요, 특정 클래스..

Programming/Java 2021.08.29 (1)

Vue.js 사용 하기 4 ) PostgreSQL로 간단 게시판 작성 해보기 - 조회 및 수정 기능 추가

Vue.js 사용 하기 4 ) PostgreSQL로 간단 게시판 작성 해보기 - 조회 및 수정 기능 추가 ​ Vue.js 사용 하기 3) postgreSQL 게시판에서 Modal 이용하기 에 이어지는 글 입니다. ​ 마지막으로 Vue를 활용해 게시판을 조금 더 "사용할 수 있음" 에 가깝게 수정 해 보았습니다. ​ 일단 개별 글의 "조회" 기능을 추가 하였습니다. 이에 따라 게시판 목록 에서는 삭제 버튼이 사라졌습니다. 각 글의 제목을 누르면 개별 글을 조회 할 수 있도록 하였습니다. ​ 수정 버튼을 누르면 게시글 수정이 가능합니다. 게시글 수정은 게시글 작성 모달을 그대로 재활용하며 상황에 따라 다르게 작동하도록 하여 코드의 양을 줄이고 변경에 용이하도록 하였습니다. ​ 게시글 작성을 보면 아시겠지만 ..

SpringBoot 프로젝트에서 HTML, CSS 등 정적자원 Hot Reload 시키기 - IntelliJ IDEA 인텔리제이

SpringBoot 프로젝트에서 HTML, CSS 등 정적자원 Hot Reload 시키기 - IntelliJ IDEA 인텔리제이 ​ 단순한 html 파일만 변경 하는데도 Eclipse 쓸때는 별 문제 없이 바로 바로 새로고침이 되었던 것 같은데 인텔리제이를 사용하려니 서버를 재시작 하지 않으면 변경사항이 적용이 안되더라구요. 인터넷을 검색 해도 옛날 정보라서 검색해서 체크하라던 내용도 없고, 하란 대로 해도 안되서 여기 저기 다 검색 하다가 해결을 해서 정보를 나누려고 포스팅 합니다. ​ 1. Preferences 에서 Compirer에 Build Project automatically 를 체크해줍니다. ​ 구글에서 검색 했을 때에는 registry에 가서 compiler.automake.allow.wh..

java ) Fail-Safe Iterator vs Fail-Fast Iterator

java ) Fail-Safe Iterator vs Fail-Fast Iterator ​ 1 소개 이번 글에서는 Fail-fast와 Fail-Safe Iterator의 개념에 대해 알아보겠습니다. 영어로 된 문서를 읽으며 공부하다보니 의미에 맞게 번역하는 과정에서 제가 전문 번역가가 아니라 다소 표현이 딱딱한 느낌이 날 수도 있습니다. 간단한 차이를 말씀드리고 시작하자면, Fail-Fast 시스템에서는 오류가 발생하는 즉시 작업을 중단하고 오류를 알립니다. 또한 진행중이던 전체 작업을 모두 중단시킵니다. 반면에 Fail-Safe 시스템에서는 문제가 생겨도 작업을 중단 하지 않습니다. 해당 시스템에서는 오류 발생을 가능한 피하려고 합니다. ​ ​ 2 Fail-Fast Iterators java의 컬렉션은 ..

Programming/Java 2021.08.23 (6)

Javascript로 페이지 리다이렉트 하는 방법. location.href vs location.replace

Javascript로 페이지 리다이렉트 하는 방법. location.href vs location.replace javascript를 사용하며 다른 페이지로 이동 하는 방법은 몇 가지가 있습니다. 일단 추천하지는 않지만 jQuery를 사용한다면 $(location).attr('href', 'https://shanepark.tistory.com'); 같은 방법을 쓸 수 있겠죠? ​ 하지만 보통 가장 많이 썼던 방법은 window.location.href = 'https://shanepark.tistory.com'; 였을 겁니다. 대다수의 상황에서 window.location.href 는 별 문제 없이 작동하지만, 해당 리다이렉트 방법을 사용하면 안되는 경우도 있을..

SpringBoot ) Application.properties 혹은 .yml 프로필 별로 따로 사용하기 (Eclipse, IntelliJ IDEA)

SpringBoot ) Application.properties 혹은 .yml 프로필 별로 따로 사용하기 (Eclipse, IntelliJ IDEA) application.properties 가 상황에 따라 개발환경/ 배포환경 등으로 나눠서 설정이 필요한 경우가 있습니다. 필요 할 떄마다 파일을 수정해가며 하면 번거롭기 때문에 보통 여러개의 프로필을 만들어 두고 필요에 따라 사용하는게 편리합니다. application.yml (혹은 application.properties) 파일은 기본 설정 파일입니다. 후에 application-dev.yml 혹은 application-dep.yml 파일을 생성한다면 dev 혹은 dep가 profile이 됩니다. 그리고 또한 프로필에 들어간 설정들은 기존의 설정을 ov..

Vue.js 사용 하기 3) postgreSQL 게시판에서 Modal 이용하기

Vue.js 사용 하기 3) postgreSQL 게시판에서 Modal 이용하기 Vue.js 사용 하기 2 ) PostgreSQL로 간단 게시판 작성 해보기에 이어지는 글입니다. ​ 이번글에서는 Vue.js 의 기본 Component 중 하나인 Modal 기능을 이용 해 보겠습니다. ​ 전 글에서 만든 게시판 입니다. 아무리 대충 만들었다고 하지만 글 작성이 같은 페이지에 있으니 보기가 참 불편합니다. 글 작성하는 부분을 Modal로 빼 보도록 하겠습니다. ​ Vue.js 공식 홈페이지의 Modal 관련한 부분은 https://vuejs.org/v2/examples/modal.html 에 있습니다. 해당 코드를 그대로 사용 해 보도록 하겠습니다. ​ style.css .modal-mask { positio..

Vue.js 사용 하기 2 ) PostgreSQL로 간단 게시판 작성 해보기

Vue.js 사용 하기 2 ) PostgreSQL로 간단 게시판 작성 해보기 ​ Vue.js, SpringBoot, PostgreSQL, Hibernate 중 익숙하지 않은 기술이 있는 분은 아래의 두 포스팅을 먼저 참고하시면 코드를 좀 더 쉽게 읽으실 수 있습니다. Vue.js 사용 하기 1 ) 기본 문법 윗 글에 이어지는 글입니다. SpringBoot + PostgreSQL + Hibernate ) 간단한 게시판 만들기 해당 글에서 SpringBoot + PostgreSQL + Hibernate 로 만들어둔 간단 게시판 api를 활용해서 Vue.js 로 화면을 만들어 보겠습니다. ​ 이번에는 Vue.js 를 이용해 아주 간단한 게시판 페이지를 렌더링 해 보도록 하겠습니다. ​ 전체적인 패키지 구조는 ..

반응형