Study

타임리프 (Thymeleaf) 란 ? 타임리프 (Thymeleaf) 란 컨트롤러가 전달하는 데이터를 통해 동적으로 화면을 만들어주는 템플릿 엔진이다. 템플린 엔진이란 지정된 템플릿 양식에 데이터 모델을 전달하여 동적 컨텐츠를 만들어주는 소프트웨어를 말한다. 초기 스프링에서는 서버 사이드에서 동적인 컨텐츠를 제공하기 위해 JSP 방식을 주로 사용했다면, 스프링 부트로 넘어오고 나서는 Thymeleaf 템플릿 엔진을 많이 사용한다. Thymeleaf은 아래와 같은 특징이 있다. 1. 서버사이드 HTML 렌더링 템플릿 엔진은 백엔드 서버에서 HTML을 동적으로 렌더링하는 용도로 사용된다. 2. 네츄럴 템플릿 타임리프는 순수 HTML을 유지하는 특징이 있다. 만약 백엔드 서버가 기동중이지 않는다면 정적인 순수 ..
· Study
개요 회사 사람들과 공부 목적으로 평소 사용하던 개발 서버 환경을 놀고 있는 서버에 구축해보기로 했다. 내가 맡은 시스템의 배포환경은 운영서버에는 쿠버네티스 기반으로 서버가 구축되어 있지만, 개발서버에서는 1개의 도커 컨테이너 안에 모든 어플리케이션이 구축되어 있다. DevOps 를 배워가는 초보자 입장에서, 이 개발서버를 클론코딩 하듯 구축해보는 것도 좋은 실습거리라고 생각이 되어 진행 하기로 했다. 진행 순서는 아래와 같다 1. centos 7 버전의 도커 이미지 받기 & 컨테이너로 띄우기 2. 컨테이너 내에 백엔드 환경 구축 3. 컨테이너 내에 프론트 환경 구축(nginx 설정) 4. 포트포워딩 및 테스트 물론 백엔드 환경 , nginx 환경을 구축하여 도커 허브에 올라와 있는 이미지도 있겠지만 나..
개요 자바 객체의 특정 필드를 제외하고 직렬화 / 역직렬화 해야 하는 경우 jackson 라이브러리의 @JsonIgnore 또는 @JsonProperty 어노테이션을 제외 시키고자 하는 필드 위에 추가하면 된다. @JsonIgnore : 해당 어노테이션을 붙인 객체의 필드는 직렬화 / 역직렬화 할 때 모두 해당 필드를 읽지 않게 하는 설정 @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) : 해당 어노테이션을 붙인 필드는 직렬화 시에는 무시되지만, 역직렬화 시에는 해당 필드를 읽도록 하는 설정 @JsonIgnore @JsonIgnore는 해당 어노테이션이 붙은 필드는 직력화 / 역직렬화 할 때 읽지 않는다. 아래는 CommentDto라는 객체를 Object..
· Study/Java
개요 회사에서 신규 프로젝트로 마이그레이션 자동화 애플리케이션 개발을 진행하게 되었는데, 마이그레이션 API 내에 대용량 엑셀 파일을 읽어서 DB에 저장하는 기능을 개발하게 되었다. 기능 구현을 위해 구글링을 열심히 해보니, 아파치 POI 라이브러리를 사용해 엑셀을 읽을수 있다는 것을 알게 되었다. POI 라이브러리에는 WorkBook 이라는 클래스가 존재했고, 해당 클래스를 사용하여 엑셀을 읽고 간편하게 엑셀 데이터를 가져올 수 있었다. 하지만 결론적으로 나는 이 WorkBook 방식을 사용하여 개발한 것을 갈아엎기로 했다. 이유는 속도 이슈 때문이었다. 내가 구현해야했던 어플리케이션은 주로 대용량 엑셀 파일을 업로드 해야 했다. 그러나 WorkBook 방식으로 구현한 기능은 엑셀 데이터가 N만건 이상..
· Study/Git
개요 Git을 사용해서 협업하다보면 개인의 로컬 브랜치에서 작업을 하고, 최종 브랜치에서 Merge로 병합해서 관리한다. 그런데 최근 병합한 커밋 내역 관리가 어렵다고 생각하던 중, Squash / Rebase 라는 기능을 알게 되어 내용을 정리하고 공유하고자 한다. 이 게시글에서 사용하는 모든 그림은 https://im-developer.tistory.com/182 여기에서 너무 잘 정리해놓으셨길래 참고했다. 예시로 사용할 브랜치명은 개인 브랜치는 my-branch, 최종 브랜치명은 master 이다. Merge 명령어 : git merge my-branch Merge 는 주로 사용하는 브랜치 병합 기법으로, 병합하려는 브랜치의 변경내역을 현재 브랜치의 커밋내역에 모두 합치는 방법이다. 아래 그림과 같..
· Study/Java
개요 String형 변수에 특정 문자/문자열이 포함되어 있는지 확인할 때는 indexOf 또는 contains 메소드를 사용한다. String str1="a@123@b"; // indexOf System.out.println(str1.indexOf("@123@")>-1); System.out.println(str1.indexOf("@123@")); // contains System.out.println(str1.contains("@123@")); contains 와 indexOf 비교 contains 메소드는 특정 문자/문자열이 포함되어 있는지 여부를 확인하는 메소드라면, indexOf 메소드는 찾는 문자/문자열의 위치를 확인할 수 있는 메소드이다. 각각의 결과값 아래와 같다. 1. contains - ..
jonghne
'Study' 카테고리의 글 목록 (6 Page)