My Study/Java
-
Map 객체를 DTO 객체로 매핑하는 작업을 했었다. 작업 도중 가끔 오류가 나는 것을 발견하고 해결한 뒤에 정리 겸 적어본다. 일단 Map객체를 DTO 객체로 매핑하는 것은 DTO객체의 set 메소드를 사용하는 방법이 있다. 하지만 이런 방식을 사용하면 DTO의 필드가 많으면 많을 수록 코드의 길이가 길어지고 가독성 또한 많이 떨어질 것이다. 그래서 DTO의 필드를 뽑아낸 뒤에 map이 그 값을 key로 가지고 있을 때 DTO 객체로의 매핑을 하면 된다. 아래 예시 코드이다. MemberDTO userVo = new MemberDTO(); for(Field field : userVo.getClass().getDeclaredFields()) { field.setAccessible(true); if(use..
Map을 DTO or VO로 매핑Map 객체를 DTO 객체로 매핑하는 작업을 했었다. 작업 도중 가끔 오류가 나는 것을 발견하고 해결한 뒤에 정리 겸 적어본다. 일단 Map객체를 DTO 객체로 매핑하는 것은 DTO객체의 set 메소드를 사용하는 방법이 있다. 하지만 이런 방식을 사용하면 DTO의 필드가 많으면 많을 수록 코드의 길이가 길어지고 가독성 또한 많이 떨어질 것이다. 그래서 DTO의 필드를 뽑아낸 뒤에 map이 그 값을 key로 가지고 있을 때 DTO 객체로의 매핑을 하면 된다. 아래 예시 코드이다. MemberDTO userVo = new MemberDTO(); for(Field field : userVo.getClass().getDeclaredFields()) { field.setAccessible(true); if(use..
2024.02.13 -
구글 애널리틱스 개요 홈 구글 애널리틱스 계정으로 로그인하면 '홈' 페이지가 가장 먼저 표시된다. 여기에는 사용자, 세션, 이탈률, 세션 시간, 트래픽 소스 등 개요를 한번에 볼 수 있다. Google Analytics의 홈 화면 및 기타 위치에서 꼭 알아야 할 용어. ▶ 사용자 : 사이트를 방문한 사람들의 수 ("순 방문자") ▶ 세션 : 사람들이 사이트를 방문한 횟수 ("방문수") ▶ 이탈률 : 사람들이 여러 페이지를 보다가 떠나는 비율. 이탈률이 낮을 수록 좋음 ▶ 세션 시간 : 사람들이 사이트에 머문 시간. 세션 시간이 길수록 좋음 ▶ 트래픽 채널: 트래픽이 발생하는 위치를 알 수 있음 ("자연 검색", "직접", "소셜", "추천" 등) 잠재고객 섹션 세션 및 사용자 해당 부분은 특정 기간 동안..
Google Analytics (GA)구글 애널리틱스 개요 홈 구글 애널리틱스 계정으로 로그인하면 '홈' 페이지가 가장 먼저 표시된다. 여기에는 사용자, 세션, 이탈률, 세션 시간, 트래픽 소스 등 개요를 한번에 볼 수 있다. Google Analytics의 홈 화면 및 기타 위치에서 꼭 알아야 할 용어. ▶ 사용자 : 사이트를 방문한 사람들의 수 ("순 방문자") ▶ 세션 : 사람들이 사이트를 방문한 횟수 ("방문수") ▶ 이탈률 : 사람들이 여러 페이지를 보다가 떠나는 비율. 이탈률이 낮을 수록 좋음 ▶ 세션 시간 : 사람들이 사이트에 머문 시간. 세션 시간이 길수록 좋음 ▶ 트래픽 채널: 트래픽이 발생하는 위치를 알 수 있음 ("자연 검색", "직접", "소셜", "추천" 등) 잠재고객 섹션 세션 및 사용자 해당 부분은 특정 기간 동안..
2024.02.05 -
구글 애널리틱스란? 구글에서 제공하는 무료 웹 로그 분석 툴 구글 애널리틱스(Google Analytics)는 구글에서 무료로 제공하는 웹 로그 분석 툴이다. 줄여서 GA라고 한다. 구글 애널리틱스를 웹 사이트에 설치하게 되면, 방문자의 유입 소스나 사이트 내 행동과 같은 유용한 정보를 수집하고 저장, 분석할 수 있다. 또한 구글 Ads와 연결해 구글 광고를 최적화하는데 필요한 데이터를 제공하기도 한다. 구글 애널리틱스를 사용하는 이유 방문자의 유입 출처 확인 구글 애널리틱스에서 '획득 > 전체 트래픽 > 소스/매체' 를 열면 아래와 같은 표를 볼 수 있다. 구글 광고를 통해 몇 명이 방문했는지, 네이버 블로그나 페이스북을 통해서는 몇 명이 방문했는지를 알 수 있다. '소스/매체'에서 '소스'는 유입의 ..
GA (Google Analytics)란?구글 애널리틱스란? 구글에서 제공하는 무료 웹 로그 분석 툴 구글 애널리틱스(Google Analytics)는 구글에서 무료로 제공하는 웹 로그 분석 툴이다. 줄여서 GA라고 한다. 구글 애널리틱스를 웹 사이트에 설치하게 되면, 방문자의 유입 소스나 사이트 내 행동과 같은 유용한 정보를 수집하고 저장, 분석할 수 있다. 또한 구글 Ads와 연결해 구글 광고를 최적화하는데 필요한 데이터를 제공하기도 한다. 구글 애널리틱스를 사용하는 이유 방문자의 유입 출처 확인 구글 애널리틱스에서 '획득 > 전체 트래픽 > 소스/매체' 를 열면 아래와 같은 표를 볼 수 있다. 구글 광고를 통해 몇 명이 방문했는지, 네이버 블로그나 페이스북을 통해서는 몇 명이 방문했는지를 알 수 있다. '소스/매체'에서 '소스'는 유입의 ..
2024.02.05 -
탭 기능 설명 및 사용법 가이드 1. 메인 JSP 베이스가 될 JSP 코드 사용할 때에 temp.jsp에 js, css 모두 import 후 temp.jsp를 include 한 뒤 사용하는게 좋음. 2. 메인JS 2-1. tabFunc const tabList = new Array(); const tabFunc = (target) => { let link = target.attr('id'); let name = target.text(); if(name == '로그관리') name = '목록조회'; if(tabList.length < 8) { if(tabList.indexOf(name) == -1) { // report를 실행해야 하는 탭 if(name == '서식뷰어') { tabList.push(nam..
탭 기능 만들기탭 기능 설명 및 사용법 가이드 1. 메인 JSP 베이스가 될 JSP 코드 사용할 때에 temp.jsp에 js, css 모두 import 후 temp.jsp를 include 한 뒤 사용하는게 좋음. 2. 메인JS 2-1. tabFunc const tabList = new Array(); const tabFunc = (target) => { let link = target.attr('id'); let name = target.text(); if(name == '로그관리') name = '목록조회'; if(tabList.length < 8) { if(tabList.indexOf(name) == -1) { // report를 실행해야 하는 탭 if(name == '서식뷰어') { tabList.push(nam..
2024.01.25 -
다음에는 더 정확하게 이해를 하고 사용해보기 Quartz는 Job Scheduling 라이브러리로 어느 자바 프로그램에서도 쉽게 통합하여 개발할 수 있다. Quarzt 사용하기 1. Pom.xml에 Quartz dependency 추가 org.quartz-scheduler quartz 2.3.2 2. Trigger와 Job을 Bean 등록을 한다. @Configuration public class ConfigureJob { @Bean @Conditional(QuartzCondition.class) public JobDetail jobADetails() { return JobBuilder.newJob(ExecuteJob.class) .withIdentity("Job") .storeDurably().buil..
Scheduler 만들 수 있는 Quartz 정리다음에는 더 정확하게 이해를 하고 사용해보기 Quartz는 Job Scheduling 라이브러리로 어느 자바 프로그램에서도 쉽게 통합하여 개발할 수 있다. Quarzt 사용하기 1. Pom.xml에 Quartz dependency 추가 org.quartz-scheduler quartz 2.3.2 2. Trigger와 Job을 Bean 등록을 한다. @Configuration public class ConfigureJob { @Bean @Conditional(QuartzCondition.class) public JobDetail jobADetails() { return JobBuilder.newJob(ExecuteJob.class) .withIdentity("Job") .storeDurably().buil..
2024.01.22 -
Spring Security spring security를 사용하기 위해서 pom.xml에 의존성을 추가해야 한다. org.springframework.boot spring-boot-starter-security 3.2.1 dependency> 그리고 로그인 구현 시 필요한 UserDetailService를 상속받은 service와 UserDetails를 상속받은 User가 필요하다. UserDetailService @Service @RequiredArgsConstructor public class MemberDetailService implements UserDetailsService { private final MemberMapper memberMapper; private final PasswordE..
Springboot 3.0 이상에서 Spring security 사용Spring Security spring security를 사용하기 위해서 pom.xml에 의존성을 추가해야 한다. org.springframework.boot spring-boot-starter-security 3.2.1 dependency> 그리고 로그인 구현 시 필요한 UserDetailService를 상속받은 service와 UserDetails를 상속받은 User가 필요하다. UserDetailService @Service @RequiredArgsConstructor public class MemberDetailService implements UserDetailsService { private final MemberMapper memberMapper; private final PasswordE..
2024.01.17 -
Apache와 Tomcat을 이용해서 war를 배포해보기 먼저 배포를 하기 전 Tomcat에 대해 알아보았다. Tomcat이란 아파치 소프트웨어 재단의 웹 어플리케이션 서버(WAS)로 자바 서블릿을 실행시키고 JSP 코드가 포함되어 있는 웹 페이지를 만든다. 자바 서블릿과 JSP 규격의 참조용 구현으로 평가되고 있는 Tomcat은 웹 서버에서 넘어온 동적인 페이지를 읽어들여 프로그램을 실행하고 그 결과를 다시 html로 재구성하여 Apache에게 되돌려주는 역할이다. Apache는 HTTP 웹 서버이고 구축이 쉽기 때문에 많이 사용한다. 여기서 Apache와 Tomcat의 차이점 Apache는 HTTP 요청을 처리하는 웹 서버이고 Tomcat은 WAS 서버이다. WAS(Web Application Ser..
신입 개발자의 기록 [12/06] Apache와 Tomcat을 사용해 war 배포Apache와 Tomcat을 이용해서 war를 배포해보기 먼저 배포를 하기 전 Tomcat에 대해 알아보았다. Tomcat이란 아파치 소프트웨어 재단의 웹 어플리케이션 서버(WAS)로 자바 서블릿을 실행시키고 JSP 코드가 포함되어 있는 웹 페이지를 만든다. 자바 서블릿과 JSP 규격의 참조용 구현으로 평가되고 있는 Tomcat은 웹 서버에서 넘어온 동적인 페이지를 읽어들여 프로그램을 실행하고 그 결과를 다시 html로 재구성하여 Apache에게 되돌려주는 역할이다. Apache는 HTTP 웹 서버이고 구축이 쉽기 때문에 많이 사용한다. 여기서 Apache와 Tomcat의 차이점 Apache는 HTTP 요청을 처리하는 웹 서버이고 Tomcat은 WAS 서버이다. WAS(Web Application Ser..
2023.12.06 -
웹 성능 최적화하는 여러 가지 방법 웹 최적화 : 최고의 웹 성능을 구현하기 위해 최고의 조건을 만드는 다양한 노력을 의미한다. 즉, 최고의 성능을 만드는 것이 웹을 최적화하는 방법이다. 최적화에는 크게 세 가지 방법이 있다. Front-End 최적화 : 웹 UI/UX 관련된 최적화이다. 주로 HTML, JS, CSS, Image의 최적화를 진행한다. 최적화가 잘 되어있는 웹사이트는 브라우저에서 콘텐츠를 다운로드, 로딩, 렌더링 할 때 속도가 빨라진다. 브라우징 시간 별 콘텐츠를 볼 때 대부분의 시간은 Front-End에서 발생한다. Front-End 최적화하는 대표적인 방법은 다음 표와 같다. 스트립트를 병합하여 브라우저의 호출 개수를 줄인다. 도메인 수를 줄여 DNS 조회를 최소화한다. 스크립트 크기..
신입 개발자의 기록[12/05 웹 최적화]웹 성능 최적화하는 여러 가지 방법 웹 최적화 : 최고의 웹 성능을 구현하기 위해 최고의 조건을 만드는 다양한 노력을 의미한다. 즉, 최고의 성능을 만드는 것이 웹을 최적화하는 방법이다. 최적화에는 크게 세 가지 방법이 있다. Front-End 최적화 : 웹 UI/UX 관련된 최적화이다. 주로 HTML, JS, CSS, Image의 최적화를 진행한다. 최적화가 잘 되어있는 웹사이트는 브라우저에서 콘텐츠를 다운로드, 로딩, 렌더링 할 때 속도가 빨라진다. 브라우징 시간 별 콘텐츠를 볼 때 대부분의 시간은 Front-End에서 발생한다. Front-End 최적화하는 대표적인 방법은 다음 표와 같다. 스트립트를 병합하여 브라우저의 호출 개수를 줄인다. 도메인 수를 줄여 DNS 조회를 최소화한다. 스크립트 크기..
2023.12.05