반응형

JAVA 20

[Java] Stream vs 일반 for문 (List<Map<String, Object>> 구조)

최근 한 프로젝트에서 로직이 복잡한 배치 프로그램에서 에러가 났다.디버깅하려고 보니 Stream을 이용해 코딩한 것.일반 for문으로 코드를 수정한 뒤에 디버깅을 해 오류를 해결했다. Stream과 일반 for문의 차이를 메모하고자 작성하는 포스팅.  for문 사용Stream 사용장점직관적이고 디버깅 쉬움break, continue 사용 가능선언적이고 깔끔한 코드가독성 좋고 체이닝 쉬움단점가독성 떨어질 수 있음 (특히 중첩되면) 디버깅이 어렵고, 예외 처리 불편할 수 있음너무 복잡하게 쓰면 가독성 저하디버깅쉬움어려움추천 사용법 복잡한 조건 or 상태 변경 단순 필터/맵핑    예제로 비교해 보자.공통 샘플 데이터List> people = new ArrayList();people.add(Map.of("na..

JAVA 2025.03.25

[JAVA] 자바 정규식 사용해서 특수분자 치환할 때 에러

출처 : http://gnujava.com/board/article_recent_view.jsp?article_no=5944&menu_cd=57&board_no=36&table_cd=EPAR01&table_no=01 ▼ 출처에 있는 내용. Java로 String Parser를 구현하는 중에 특수문자를 치환해줘야하는 경우가 발생했다. 정규식에서 사용하는 정규 문자들을 치환(String.replaceAll 메소드 사용)해줘야 했었는데, 정규식에서는 특수문자를 정규식의 패턴으로 인식해서 에러(java.util.regex.PatternSyntaxException)가 발생하였다. 이러한 방법을 해결해주기 위해 치환할 때 아래와 같이 표현해주면 된다. []으로 싸줘야하는 문자 * → [*] + → [+] $ → [..

JAVA 2022.06.17

[Spring Boot] build.gradle dependencies 문법

출처 : https://bloowhale.tistory.com/64 dependencies dependencies는 의존성을 관리하고 설정하는 프로퍼티입니다. 여기에 필요한 라이브러리 등의 정보를 기술하면 그 라이브러리를 참조할 수 있게 됩니다. dependencies를 사용할 때 Gradle 은 compile, implementation, testImplementation 등의 디 양한 옵션을 제공해줍니다. compile A 모듈을 수정하게 되면 이 모듈을 직 간접적으로 의존하는 모든 모듈이 recompile 된다. implementation A 모듈을 수정하게 되면 이 모듈을 직접 의존하는 모듈만 recompile 된다. compileOnly 컴파일 시에만 빌드하고 빌드 결과물에는 포함하지 않는다. ..

JAVA 2022.05.26

[java] 어노테이션(Annotations) @Size @Length @Column(length)의 차이점

출처: https://stackoverflow.com/questions/34588354/difference-between-size-length-and-columnlength-value-when-using-jpa-and-h import javax.validation.constraints.Size @Size는 연결된 문자열의 길이가 min/max에 맞게 유효한지 확인하는 Bean Validation 어노테이션이다. import org.hibernate.validator.constraints.Length @Length는 Hibernate Validation 어노테이션이며 @Size와 같은 의미이다. @Column은 JPA 어노테이션이며 스키마 생성 툴에서 관련 SQL Column 길이를 설정하는 데 사용된다.

JAVA 2021.10.12

[Spring] @Transactional 작동 안 할 때 확인해봐야 할 것

https://lemontia.tistory.com/878 [spring] @Transactional 작동 안할때 확인해봐야 할 것 인터넷에 나와있는 각종 설정을 해봐도 안될경우 다음을 참조하면서 점검해보자 1. 메서드가 public 인지 확인 - private 면 걸리지 않는다 public class TranService() { @Transactional private.. lemontia.tistory.com 내 경우는[ 한 클래스 내 @Transactional 이 설정되어 있지 않은 메서드에서 @Transactional 이 설정된 메서드를 호출할 경우. ]였다. Controller에 있는 a(), b()Service에 있고, a()와 b()가 호출하는 tran() a()..

JAVA 2021.08.25

[Spring] Custom javax validation constraints, 동적으로 Class 레벨의 validate 및 Custom 에러 메시지 (field, message)

* 연관 검색어 : javax validation constraints, java bean validation, hibernate validation, 동적 validation ※ 예시 소스는 실제 소스에서 이름을 변경해 작성한 것이기 때문에 복사+붙여넣기를 할 경우 에러가 날 수도 있습니다.에러가 난다면 적절하게 수정해서 사용 부탁드립니다.  구현 중인 것은 도메인 모델(Domain model)에서 Request 값의 유효성 체크.보통 어노테이션(Annotation)을 쓰면 모든 field에 대해 체크한다.예시 모델을 보자면, 내가 구현하고 싶은 기능은is_admin이 true라면 email을 필수값 체크, 아니면 체크하지 않는 것이다.▼ 예시 모델 (UserDomain.java)public class..

JAVA 2021.08.25

[JSTL] 중복 submit 방지하는 스크립트

출처: http://cofs.tistory.com/270 공통 js로 묶어서 페이지별 form name만 챙겨서 괄호 안에 넣어주면 된다. 1234567891011var doubleSubmitFlag = false; function fncSubmit(formName){ if(doubleSubmitFlag){ alert('제출 중입니다.'); return false; }else { doubleSubmitFlag = true; formName.submit(); }}Colored by Color Scriptercs 출처의 input type은 button이라 클릭 시 바로 submit이지만, a링크로 넘길 경우 따로 submit을 날려야 하기 때문에 보완한 스크립트.

JAVA 2017.11.16
반응형