JAVA 90

JAXBContext marshal, unmarshal(마샬, 언마샬)

JAXB (자바 API) - 언마샬링(Unmarshalling) : XML 스키마를 읽어서 자바 오브젝트로 변환 - 마샬링(Marshalling) : 자바 오브젝트를 XML 스키마로 변환 대부분 JSON(JavaScript Object Notation)을 많이 사용하는 추세지만 XML도 적지않게 사용하고 있다. 또한 JSON을 다룰 때 자주 사용하는 Jackson을 통해서도 XML 파싱이 가능하다. 이번 글에서는 단순히 JAXB API를 이용하여 자바 오브젝트를 XML 형태로 변환하거나, XML을 읽어서 자바 오브젝트로 변환하는 방법을 살펴보겠다. 1. Marshal (POJO to XML) POJO(Plain Old Java Object)를 XML로 변환 import javax.xml.bind.anno..

JAVA 2023.01.12

FileOutputStream 고민 해결

해결할 점 1. 서버 로컬이 아니라 클라이언트한테 파일이 저장되어야 한다. 2. 경로를 지정할 수 있어야한다. 프론트에서 a태그의 download 기능을 사용하지 않고 ajax로 파일 다운로드하는 방법을 드디어드디어 찾았다.. 1. POST 방식으로 우선 파라미터를 전송하여 엑셀 파일을 서버 환경에 다운로드 후 경로 리턴 2. GET 방식으로 서버에 저장되어있는 엑셀 파일 불러오기 // 검색 조건과 동일한 상품리스트를 엑셀파일로 내려받기 by jwjeong 2022-11-23 $('body').on('click', '#btn_exportExcel', function() { var pageParam = { pageNo: AsyncClass.pageNoWithAsync }; //0번 쿼리 및 페이징을 전달 ..

JAVA 2022.12.09

DB 쿼리 결과 엑셀 파일로 내려받기 : POI

Java에서 Excel 파일을 쓰기 위해 JXL, POI 두가지의 라이브러리를 가장 많이 사용하는 것 같다. 개인적인 생각으로 POI보다 JXL 라이브러리가 사용하기에 훨씬 편리한 것 같지만 JXL 라이브러리는 .xlsx 파일을 지원하지 않아 최대 65,535 라인밖에 쓰지 못한다는 단점이 있다. 나는 아주 많은 데이터를 저장해야 했기 때문에 .xlsx 파일을 지원해주는 POI 라이브러리를 사용했다. (xls는 최대 65535라인, xlsx는 최대 1048576라인) https://poi.apache.org/download

JAVA 2022.11.23

Java statement vs preparedStatement vs callableStatement 비교

Java에서 JDBC를 이용하여 DB에 접속 하고자 할때 JDBC API는 3종류의 인터페이스를 제공한다. statement - 일반적인 sql쿼리를 실행 preparedStatement - 동적 또는 매개변수가 필요한 sql쿼리를 실행 callableStatement - 저장된 프로시져를 실행 이 세가지 인터페이스는 비슷해보이지만 각각 사용 목적과 의도가 다르다. 1. statement 기본적은 사용법은 다음과 같다. String sql = "SELECT name, phone, address FROM classTable"; Statement s = conn.credateStatement(); ResultSet rs = s.executeQuerey(sql); statement는 일반적인 sql 쿼리를 실..

JAVA 2022.10.19

복습) 추상화

프로그램을 만들 때 처음부터 추상화된것부터 생각하기는 어렵다. 구체적인것부터 올라가며 추상화시켜야한다. ___________ 의존성 주입 ? 나는 A가 필요한데 A는 B가 필요하다. 이때 알아서 다 필요한걸 DI를 해줘서 내가 신경쓸 필요가 없다. 라이브러리는 모두 DI이다. gradle이나 maven이 없으면, 의존성 관리 도구가 없으면 너무너무 힘들다. 라이브러리 관리하기가 !! 이걸 사용하면 필요한 라이브러리만 가져오면 애들이 다 갖다준다. DI가 왜좋냐. 생성자 주입을 해주니까. 필요한거있으면 다 주입해준다. pip도 똑같고 npm 똑같고 라이브러리 관리 도구는 모두 DI 방식이다. 엄청 편하다. 다 똑같음 ! DI의 특징 : 라이브러리를 가지고있는 컨테이너가 필요하다. IoC도 똑같은 개념이다...

JAVA 2022.05.31

복습) 메모리, 스택 오버 플로우, 재귀 함수, 상태는 행위로 변경

이클립스 설정 utf-8 설정 요새 기본 데이터베이스 세팅은 utf-8이 아닌 utf-8mb4이다. 얘는 이모지도 사용이 가능하다. 이모지는 그림이 아닌 글자이다. 회사에서 자바버전 11을 쓴다면 flux를 쓴다는 것이다. flux -> 서드파티 라이브러리 (외부 라이브러리)가 인기가 많아서 표준이 되었다. -> 1.9 flux : 구독과 출판기술을 구현하게 해주는 라이브러리 구독과 출판? A 신문사는 출판을 한다. 스포츠를 할수도있고 음악을 할수도있고 게임을할수도있잖아. 그러면 구독자들은 신문사의 게임만 구독하면 게임이 딱 insert 됐으니까 모든 게임을 구독하고있는사람한테 push해주는 기능 보통 SSE response 선이 유지되어있지 않으면 못해준다. 외부 라이브러리 사용하고싶으면 다운받아서 빌..

JAVA 2022.05.30

UML 클래스 다이어그램

UML(Unified Modeling Language) 다이어그램 : 시스템을 모델로 표현해주는 대표적인 모델링 언어 클래스 다이어그램은 구조 다이어그램으로 클래스 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 특정 모듈이나 일부 및 전체를 구조화한다. 클래스 다이어그램의 목적에 따라 개념, 명세, 구현 단계로 나눌 수 있다. 개념 단계에서는 클래스만 도출하고 관계를 단순화하는 것이 목적이다. 명세와 구현 단계에서는 개발 직전 설계나 구현 이후 설명 목적으로 사용되고 이 다이어그램을 기반으로 코드를 구현하거나 코드를 기반으로 다이어그램을 그리기 때문에 코드와 연관이 깊다. 클래스 다이어그램에서 클래스는 이름, 속성(변수), 메서드 순으로 나열한다. 속성과 메서드는 생략이 가능하지만 이름은 필수..

JAVA 2022.03.07