BE

· BE/Java
스트림 스트림은 어떤 소스로부터 어떤 스트림을 얻고, 하나 이상의 중간 작업을 수행한 후, 마지막으로 하나의 최종 작업을 수행한다. 중간 작업 : filter, map, flatMap, peel, distinct, sorted, limit, substream 최종 종료 작업 : forEach, toArray, reduce, collect, min, max, count, anyMatch, allMatch, noneMatch, findFirst, findArray 를 포함한다. Java8 부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 처리해주는 반복자이다. Reduction 대량의 데이터를 가공해 축소하는 것 데이터의 합계, 평균값, 카운팅, 최댓값, 최소값 필터링, 매핑, ..
· BE/Java
Java 8의 특징 Interface에 default 메서드, static 메서드 사용 가능 자바 8 이전까지 Interface의 abstract 메서드는 반드시 클래스에서 구현했어야 함. 인터페이스에 absrtact 메서드를 추가했다면, 그 인터페이스를 사용한 모든 클래스에서 그 메서드를 구현했어야 함 (바이너리 호환성 이슈) 자바 8이후로 default, static 메서드 사용이 가능 람다식 사용 가능, 람다를 이용해서 스트림API 사용 가능(람다는 Java8 기능 중 큰 변화) Time, Date 관련한 API 추가 함수형 프로그래밍(Functional Programming) 계산을 수학적 함수의 평가로 취급하고, 변경 불가능한 값을 이용 함수형 프로그래밍은 순수 함수들로만 작성된다. 순수함수 :..
· BE/Java
Reflection(리플렉션) 클래스의 실체가 아닌 반사된 모습을 이용한 기능. Class 를 이용 리플렉션 기능을 지원하지 않는 언어 : C, C++. Pascal 사용되는 기술 : JPA, Jackson, Mockito, Junit ... 장점 외부, 사용자 정의 클래스들을 사용할 수 있게 함 접근제어자에 관계없이 접근이 가능하도록 함 단점 컴파일 시점이 아닌, 런타임 시점에 클래스를 분석 JVM을 최적화할 수 없어 성능저하 마찬가지로, 컴파일 에러 확인 불가 코드 가독성 저하 내부가 노출되어 추상화 파괴 Class 실행중인 자바 어플리케이션의 클래스와 인터페이스의 정보를 가진 클래스 클래스와 인터페이스의 정보를 가지고 있기 때문에, Class는 클래스의 내용을 모두 확인 가능 (ex, 어노테이션, ..
· BE/Spring
환경) H2 DB 1. INSERT(UPDATE) update(query, ...) 를 사용하는 경우 추가된 행의 갯수를 반환받을 수 있다. @Override public int insert(ReviewDto dto) { int result = jdbcTemplate.update( "INSERT INTO REVIEWS (SEQ, USER_SEQ, PRODUCT_SEQ, CONTENT, CREATE_AT) VALUES (null, ?, ?, ?, null)", dto.getUserSeq(), dto.getProductId(), dto.getContent() ); return result; } 2. SELECT 쿼리를 통해 얻은 데이터 결과값을 dto, vo로 변환해주는 작업이 필요하다. 이 작업을 RowM..
· BE/Spring
안녕하세요. 이번 포스팅에서는 Spring Security에서 JSON 형식으로 로그인하는 방법에 대해서 알아보겠습니다. 아래의 내용에서 자신의 개발 방향에 맞게 커스텀하시면 될 듯 합니다. 1. UsernamePasswordAuthenticationFilter 살펴보기 로그인 요청이 들어오면, 인증 필터를 거쳐 UsernamePasswordAuthenticationFilter에서 ID와 PW를 처리합니다. - SPRING_SECURITY_FORM_UESRNAME_KEY, SPRING_SECURITY_FORM_PASSWORD_KEY : username과 password 인자 값 설정 - DEFAULT_ANT_PATH_REQUEST_MATCHER : 로그인 요청 URL 설정 위의 소스는 UsernamePa..
· BE/JPA
김영한님의 JPA 강의를 보다가 좋은 내용이 있어서 기록해둡니다. https://inf.run/Codk 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com JPA에서 데이터를 수정할 때 병합을 사용하거나 변경 감지를 사용하는 데, 이 두 방식의 차이를 알아보자. 우선, 수정을 하기 전에 '준영속 엔티티'라는 개념을 정확히 알고 있어야 한다. 준영속 엔티티 영속성 컨텍스트가 관리하지 않는 엔티티 즉, JPA 기능을 통해서 가져오지 않은 엔티티를 의미한다...
· BE/Java
MapStruct는 객체끼리 매핑을 해주는 유용한 기능이다. 간단하게 아래의 예로 사용법을 알아보자. 준비사항 MapStruct는 Getter, Setter or builder 를 사용하기 때문에 lombok이 있으면 더욱 편리하게 사용할 수 있다. dependency 설정 시, Lombok 뒤에 MapStruct를 넣어줘야 정상적으로 실행 가능하다. 매핑에 진행하기 앞서, 반드시 매핑을 진행하는 두 객체는 아래와 같은 설정을 해야 한다. 반환 타입의 객체: Builder or Setter 필요 (반환 타입의 객체에 데이터를 설정해야 하기 때문) 파라미터 타입의 객체: Getter 필요(파라미터 객체의 데이터를 읽어야 하기 때문) Category.java (Entity) import jakarta.per..
· BE/Java
Jacoco Java로 작성한 코드에 대해 code coverage 를 진단해주는 툴 쉽게 말해서, Java로 작성한 개발 코드에 대해서 테스트 코드가 얼마나 잘 확인하는 지 알려주는 툴 Junit 테스트로 함께 동작할 수 있고, 테스트 후에 테스트 코드가 개발 코드를 얼마나 커버했는가(잘 테스트했는가)에 대한 결과를 다양한 방법으로 알려줄 수 있다. (html, xml, csv 등) 특정 수치의 Code Coverage 를 검사해서, 만약 조건을 만족하지 못한다면 빌드를 못하게 막을 수도 있다. Code Coverage 테스트 코드가 개발 코드에 대해서 얼마나 잘 확인했는 지에 대해서 알려주는 지표 개발 코드에 대해서 어느정도의 코드가 테스트됐는 지 프로젝트 환경 Java 17 Maven Build J..
멍목
'BE' 카테고리의 글 목록