본문 바로가기

Java29

List 컬렉션 ArrayList 생성방법 List list = 1. new ArrayList(); - capacity가 10인 ArrayList 생성 - 매개변수에 int를 넣으면 그 숫자의 용량으로 ArrayList를 생성함 List list = new ArrayList(15); // (초기 용량이 15인 ArrayList 생성) - list.add()로 추가 가능 (할당한 초기용량 초과해도 자동으로 재할당 하기 때문에 가능 but 지양해야함) 2. Arrays.asList(); - capacity가 0인 ArrayList 생성 - 매개변수에 배열을 넣으면 그 배열의 길이로 고정된 용량의 ArrayList로 변환해 생성 String[] array = {"apple", "banana", "cherry"}; List list = Arrays.as.. 2023. 4. 13.
[국비지원] KH 정보교육원 116일차 * 트랜잭션 (Transaction, TX) 가. 분산 TX ( == Global TX) - 한 요청 처리에 2개 이상의 연결(Connection)을 사용하여 SQL 처리를 하는 트랜잭션 - 동일한 DB에 2개 이상의 연결 (JDBC Connection)들을 사용 - 각 연결 (JDBC Connection)마다, 각각 다른 DB를 사용 - 개발자가 직접 TCL 사용 불가! (TX 관리자가 대신 수행) - 스프링은 @Transactional 어노테이션으로 TX 관리 - 2PC 사용 (완전하지 않음) : 2 Phase Commit ex) 2개의 데이터 소스 사용 (각각 연결된 DB가 다름) 1st phase : 현재 분산 TX에 참여한 각각의 데이터 소스에게 Commit할 준비가 되어 있는지 물어봄 2nd .. 2022. 9. 14.
[국비지원] KH 정보교육원 115일차 kh day 115 public class LogAdvice { // POJO : Plain Old Java Object // @Before : JoinPoint 메소드 실행 전 동작 // POINTCUT EXPRESSION 생성은, AsepectJ 언어에서 제공하는 함수를 이용 // 이 pointcut 설정함수 이름은 "execution()" // 이 execution 함수를 호출시, pointcut 설정내역을 인자값으로 매개변수에 전달해야함 @Before( "execution( * org.zerock.myapp.service.*Service.*(..) )" ) // 모든 접근제한자의 Service로 끝나는 모든 클래스의 모든 메서드의 모든 매개변수(..)에 적용 public void logBefore.. 2022. 9. 13.
[국비지원] KH 정보교육원 114일차 스프링의 양대 산맥 중 하나인 AOP에 대해 배워보자!!! 프로그래밍 패러다임의 한 종류 OOP - Object Oriented Programming - 객체 지향 프로그래밍 AOP - Aspect Oriented Programming - 관점 지향 프로그래밍 AOP 0) Aspect 구현해야할 핵심 비지니스 로직은 아니지만, 개발할 때의 관심사 (횡단관심사 Cross-Concern) (성능/속도, 자원사용효율성, 트랜잭션(All or Nothing), 로깅, 보안 등) 1) Advice 횡단 관심사(Cross-Concern)를 실제 구현한 객체 (ex) 트랜잭션 처리) 2) Target 핵심 비지니스 로직이 구현된 서비스 객체 (@Service, 비지니스 계층의 서비스) => 관심사들을 적용할 대상! .. 2022. 9. 8.