목록분류 전체보기 (69)
hello world
빌더패턴을 사용하는 이유 - 불필요한 생성자 만들지 않고, 객체 생성가능 - 생성자의 입력값에 대한 순서가 바뀔 경우에 대한 오류를 줄일 수 있다 - 명시적이고 이해하기 쉬움 - 즉 객체 생성을 깔끔하고 유연하게 하기 위한 기법 점층적 생성자 패턴 --> 자바빈 패턴 --> 빌더패턴 (점층적, 자바빈 패턴 대안으로 나오게됨) 점층적 생성자 패턴 package programmers; /* 점층적 생성자 패턴 */ public class Member { private String age; private String addr; private String hobby; public Member() { } public Member(String age) { this.age = age; } public Member(S..
어노테이션이 해주는 역할은? 추가적인 정보를 제공해주는 메타데이터 (메타데이터란? 데이터에 대한 속성정보로 도서관을 예시로 들면 표제,저자,주제 등이 포함되어 있는 목록이 메타데이터에 속한다) 즉 어노테이션의 역할은 정보를 가짐으로서 그자체의 의미 쉽게말하면 프로그램의 주석 커스텀 어노테이션의 구성 (사용자 정의 어노테이션) 커스텀 어노테이션을 이용하는 방법 어노테이션을 정의한다. 어노테이션을 클래스에서 사용한다. (타겟에 적용) 어노테이션을 이용하는 코드를 수행한다. @Target({ElementType.[적용대상]}) // ElemenType.METHOD (타입을 메소드로 선언) @Retention(RetentionPolicy.[정보유지되는 대상]) //RUNTIME으로 지정할 시 컴파일 이후에도 J..
타임리프 문법 관련 사용했던거 정리... 1. Thymeleaf 음수 금액인 경우 글자색 바꾸기 (특정 글자포함여부 체크하여 글자색상 바꾸기) ( '-' 문자를 포함하고있는지로 구분해서분기처리함) 2. Thymeleaf 문자열 합치기 |로 감싸주면 문자열을 조합할 수 있다. 그냥도 가능함 3.Thymeleaf 값 비었는지 확인 ${#strings.isEmpty(~)} 문자열,배열,list,set 비었는지 확인 ${#strings.isEmpty(title)} ${#strings.arrayIsEmpty(array)} ${#strings.listIsEmpty(list)} ${#strings.setIsEmpty(set)} 4. Thymeleaf select 값에 따라 선택되어지는 값 세팅하기 Y N 5. Thy..
통계화면 개발중 하위부서의누적합을 구현하는것이 필요했다. mysql에서 recursive 기능을 제공하지않는 버전을 사용하고 있었기에 자바스크립트에서 map, reduce 메서드를 통해 통계 누적합을 구함 참고코드 map 메서드 - map 메서드는 다음과 같이 사용함 배열.map((요소, 인덱스, 배열) => {return 요소}); - map은 반복문을 돌면서 배열 안의 요소들을 1대1로 짝지어줌 (매핑한다고 표현) const hello = [1, 2, 3]; let result = hello.map((v) => { console.log(v); return v; }); hello; // [1, 2, 3] result; // [1, 2, 3] const number = [1,2,3,4] const map..
엑셀업로드중에 오류가나서 한참 뒤졌는데 1950번째 2번째열에 \ 표기 포함되어있는거 확인.. 킹받어………. 근데 치환하는거도 오류나서 한참 뒤짐 그래서 기록해두기.. 일단 자바에선 \ 이렇게 해선 못읽어옴 \\ 두개 붙여야됨 그리고 replaceAll 써서 치환하려면 \\ 두개론 안됨 \\\\ 네개붙여야됨 if(replaceCell.contains("\\")) { replaceCell =replaceCell.replaceAll("\\\\", ""); }
select CASE WHEN CHAR_LENGTH(name) > 2 THEN concat( substring(name, 1, 1) ,LPAD('*', CHAR_LENGTH(name) - 2, '*') ,SUBSTRING(name, CHAR_LENGTH(name), CHAR_LENGTH(name)) ) ELSE CONCAT( SUBSTRING(name, 1, 1) ,LPAD('*', CHAR_LENGTH(name) - 1, '*') ) END as name_masking
VO객체의 변수, 값 반복문으로 가져오는 방법 VO 객체 전체값들을 가져와야하는데 매번 다른 변수를 각각 getter setter로 가져올수는 없어서 찾아봄 VO 객체에 선언된 변수를 getter,setter 말고 기본적으로 제공하는 java.lang.reflect.Field 클래스를 사용하여 반복문으로 돌려서 가져오는 방법이 있어서 기록 public class reflectField{ public static void main(String[] args){ //가져오고자하는 Vo 객체를 선언합니다. TestVo testVo = new TestVo(); try { Object obj = testVo; // 반복문을 이용하여 해당 클래스에 정의된 필드를 가져옵니다. for (Field field : obj...
CORS? (Cross Origin Resource Sharing) cors는 한 도메인 또는 Origin의 웹페이지가 다른 도메인을 가진 (도메인간의 요청)에 액세스 할 수 있게하는 보안 메커니즘 cors는 최신브라우저에서 구현된 동일 출처 정책 때문에 등장했다. ※동일 출처 정책이란 동일한 출처의 리소스에만 접근하도록 제한하는 것이다. 출처는 (프로토콜, 호스트명, 포트가 같다는것을 의미) 간단하게 다른 출처의 자원을 공유할 수 있도록 설정하는 권한체제 제대로 설정하지 않을경우 다음과 같은 에러 화면을 볼수있음 그렇다면 왜 동일한 출처에서만 접근하도록 허용하는 것일까?! https://bank.com 이라는 도메인 사이트가 있다고 예를 들어보자 이 사이트의 api 주소는 https://bank.com..