본문 바로가기
728x90

개발259

[Spring] 스프링 AOP (2) @Configuration @EnableAspectAutoProxy public class AppConfig { @Bean public ProductServiceImpl productService() { return new ProductServiceImpl(); } @Bean public ProductDaoImpl productDao() { return new ProductDaoImpl(); } @Bean public MyFirstAspect myFirstAspect() { return new MyFirstAspect(); } } 스프링 코어 중 다른 하나인 DIxAOP 컨테이너의 AOP에 대해 알아보기 3.2.2 어노테이션으로 어드바이스 만들기 Before 어드바이스, After 어드바이스 - 어노테이.. 2022. 7. 4.
[Java] 람다와 스트림(5) 자바의 정석 챕터 14를 읽고 정리 2.4 Optional와 OptionalInt - Optional는 Generic 클래스로 "T타입의 객체"를 감싸는 Wrapper 클래스 - 모든 타입의 참조변수를 담을 수 있음 public final class Optional { private final T value // T타입의 참조변수 } - 결과를 Optional객체에 담아서 반환할 경우 null 체크가 간편함 Optional 객체 생성하기 - Optional 객체를 생성할 때는 of() 또는 ofNullable()을 사용 String str = "abc"; Optional optVal = Optional.of(str); Optional optValNull = Optional.ofNullable(null);.. 2022. 7. 4.
[HTTP] HTTP 개관 HTTP 완벽가이드 1장 읽은 후 정리 HTTP: 인터넷의 멀티미디어 배달부 - HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용한다. 웹 클라이언트와 서버 - 웹 컨텐츠는 웹 서버에 존재 - 웹 서버는 HTTP 프로토콜로 의사소통 - 클라이언트는 서버에게 HTTP 요청을 보내고 요청된 데이터를 HTTP 응답으로 돌려받는다. 리소스 - 웹 서버는 웹 리소스를 관리하고 제공 - 텍스트파일, html파일, 워드 등 모든 종류의 파일 관리, 제공 미디어 타입 - 인터넷은 수천 가지 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체 각각에 MIME 타입이라는 데이터 포맷 라벨을 붙인다.(Multipurpose Internet Mail Extentions, 다목적 인터넷 메일 확장) - MIME 타.. 2022. 7. 1.
[Spring] 스프링 AOP (1) 스프링 코어 중 다른 하나인 DIxAOP 컨테이너의 AOP에 대해 알아보기 - DI 컨테이너란 오브젝트 사이에 밀접한 의존 관계를 가지지 않게 하고, 인터페이스에 의한 약한 결합을 쉽게 만들어 소프트웨어의 컴포넌트화를 촉진하며, 오브젝트의 생명 주기를 관리할 수 있게 하는 것 - DI 컨테이너만으로는 온전한 아키텍처를 개발할 수 없음 - AOP가 있으면 로깅이나 트랜잭션 등의 처리를 따로 관리할 수 있게 구현하는 기술 3.1 AOP란 - AOP란 업무 등 특정 책임이 있는 클래스 같이 본질적이지 않은 처리들을 밖으로 꺼내는 기술 3.1.1 AOP 용어 애스펙트(Aspect) - 횡단 관심사의 동장과 그 횡단 관심사를 적용하는 소스 코드상의 포인트를 모은 것 어드바이스(Advice) - 조인 포인트에서 실.. 2022. 7. 1.
[Java] 람다와 스트림(4) 자바의 정석 챕터 14를 읽고 정리 2.2 스트림의 중간연산 스트림 자르기 - skip(), limit() - 스트림의 일부를 잘라낼 때 사용 Stream skip(long n); // 처음 n개 요소를 건너 뛴다. Stream limit(long maxSize); // 스트림의 요소를 maxSize만큼 제한한다. IntStream skip(long n); IntStream limit(long maxSize); 스트림의 요소 걸러내기 - filter(), distinct() - distinct()는 중복된 요소를 제거함. - filter()는 조건에 맞지 않는 요소를 제거함. Stream filter(Predicate 2022. 7. 1.
[Java] 람다와 스트림(3) 자바의 정석 챕터 14를 읽고 정리 2.2 스트림 만들기 - 스트림의 소스가 될 수 있는 대상은 배열, 컬렉션, 임의의 수 등 다양함 컬렉션 List list = Arrays.asList(1, 2, 3, 4, 5); //list를 소스로 하는 컬렉션 생성 Stream intStream = list.stream(); - forEach()로 지정된 작업을 스트림의 모든 요소에 대해 수행 가능하다. intStream.forEach(System.out::println); intStream.forEach(System.out::println); // 에러. 스트림이 닫힘 배열 Stream Stream.of(T... values); // 가변 인자 Stream Stream.of(T[]); Stream Arrays.s.. 2022. 6. 30.
[Spring] 스프링 DI (2) 스프링 코어 중 하나인 DI에 대한 개요, 특징, 이용 방법 및 DI를 어떻게 이용할 것인가에 대한 설명 2.5 JavaConfig를 이용한 DI - XML파일 작성 대신에 Java 코드를 작성한다. 2.5.1 예제를 이용한 JavaConfig https://devhooney.tistory.com/9 스프링 DI (1) 스프링 코어 중 하나인 DI에 대한 개요, 특징, 이용 방법 및 DI를 어떻게 이용할 것인가에 대한 설명 2.1 DI란 - DI는 '의존 관계의 주입'이다. - 오브젝트 사이의 의존 관계를 만드는 것. -> 오브젝트 devhooney.tistory.com - 이 글에서 작성했던 ProductService, ProductDao 등의 샘플을 JavaConfig로 수정한다. - AppConfi.. 2022. 6. 29.
[Spring] 스프링 DI (1) 스프링 코어 중 하나인 DI에 대한 개요, 특징, 이용 방법 및 DI를 어떻게 이용할 것인가에 대한 설명 2.1 DI란 - DI는 '의존 관계의 주입'이다. - 오브젝트 사이의 의존 관계를 만드는 것. -> 오브젝트의 인스턴스 변수에 그 오브젝트가 이용할 오브젝트를 설정한다는 의미. - 학술적으로 어떤 오브젝트가 이용할 오브젝트를 주입 혹은 인젝션(인스턴스 변수에 설정)한다는 의미. - DI를 구현하는 컨테이너는 클래스의 인스턴스화 등의 생명 주기 관리 기능이 있는 경우가 많다. 2.2 DI를 사용할 곳 - 보통 컨트롤러, 서비스, DAO의 의존 관계를 구축할 때 2.3 어노테이션을 이용한 DI 2.3.1 기본 - @Autowired와 @Component - ProductService 인터페이스 publ.. 2022. 6. 29.
[Java] 람다와 스트림(2) 자바의 정석 챕터 14를 읽고 정리 2. 스트림 2.1 스트림이란 - 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메소드들을 정의 해놓은 것. - 코드의 재사용성을 높여줌. String[] strArr = {"aaa", "bbb", "ccc"}; List strList = Arrays.asList(strArr); // 스트림 생성 Stream strStream2 = Arrays.stream(strArr); Stream strStream1 = strList.stream(); // 다른 데이터 소스지만, 이를 정렬하고 출력하는 방법은 동일하다. strStream1.sorted().forEach(System.out::println); strStream2.sorted().forEach(System.. 2022. 6. 29.
728x90