본문 바로가기

전체 글75

AOP( Aspect Oriented Programming), 관점 지향 프로그래밍 이란? AOP란? AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원한다. ​ 그럼 AOP는 언제 사용해야 할까? ​ 예를 들어서 모든 메소드의 호출 시간을 측정한다고 가정해보자. 그러면 메소드마다 이런 식의 방법으로 하나하나 시간을 재서 호출 시간을 볼 수 있다. 하지만 이런 메소드가 10000개 100000개가 된다면 하나하나 다치다가 정년을 마칠 수도 있을 것이다. 거기다가 유지보수를 할때 매우 불편하다. 시간을 측정하는 요소는 사실 핵심 비지니스 로직도 아니고 또 핵심 비지니스 로직과 섞여버려서 보기도 불편하고 변경을 할 때도 모든 로직을 찾아가야한다. 이러한 문제점을 해결해주는 것이 바로 AOP이다. ​ 간단히 살명하자면 공통 관심 사항(cross-cutting concern) vs 핵.. 2021. 8. 5.
프로그래머스 짝지어 제거하기 Level 2 https://programmers.co.kr/learn/courses/30/lessons/12973?language=python3 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제.. 2021. 8. 5.
JPA(Spring-Data-JPA) 이번에는 JPA에 대해 알아보자 이 기술은 Spring에 국한된게 아니고 java전체에 이용이 가능하다. 그전에 앞서 JDBC라는 것을 간단히 알아보자. JDBC 먼저 JDBC는 JAVA에서 DB에 접근하고, SQL을 날릴 수 있게 해주는 자바의 표준API이다. DriverManager를 이용하여 각 드라이버들을 로딩 ,해제한다 ​ JDBC의 흐름은 JDBC 드라이버 로드 -> DB 연결 -> DB에 데이터를 읽거나 쓰기 -> DB 연결 종료이다. 그리고 드라이버를 로드 할 때는 각 데이터베이스마다 써야할 명령문이 다르기 때문에 유의 해야한다. ​ 이게 JDBC의 코드의 예시다 현재 Spring Boot를 이용중여서 스프링 부트가 데이터베이스에 대해 어느정도 관리 해주기 때문에 getConnection(.. 2021. 8. 4.
스프링 빈(Spring Bean) 스프링 빈은 Spring IOC 컨테이너가 관리하는 자바 객체를 Bean이라고 부른다. ​ spring bean을 IoC(Inversion of Control)에 등록하는 방법은 크게 두가지로 나뉜다 ​ 1. annotation을 이용한 방법(@Service , @repository, @Controller 등) 2. 빈 설정파일에 직접 등록하는 방법 ​ 내가 지금 공부하고 있는 스프링(김영한)강의 에서는 둘다 하는 방법을 알고 있어야 한다고 한다. 앞서 IoC, DI(의존성 주입) 이라는 개념을 숙지하고 이 것에 대한 것을 알고 있어야 한다 해서 글을 쓴다. 아마 이 글을 보시는 분은 IOC와 DI가 무엇인지 한번 숙지해보고 오길 바란다. ​ 1. annotation을 이용한 방법 의존성 주입 스프링에서.. 2021. 8. 3.