본문 바로가기

전체 글

(730)
[Spring] self-invocation 의 문제와 사용법 저번에 eh-cache관련되서, self invocation의 문제에 대해서 잠깐 언급했다. 위와 같이, cacheable로 메소드를 감싸면, 해당 메소드에서 생성한 Post객체는 주소가 달라지지않고, 캐싱하게된다. 해당 eh캐시는, 자바 기반이고 스프링프레임워크와 생명주기를 함께한다. 하여 이런식으로 같은 주소를 가지게 된다. 그런데 여기서 문제가 있다. self invocation을 강제로 발생시켜서 확인해보자. 기존의 cacheTest의 메소드를, 호출하는 것이 아니라, 컨트롤러에서 해당 foo()를 호출하고, foo에서 cacheTest를 호출하게 한다. 이렇게 되는 경우에는,당연히 cacheTest를 호출하는거고, 캐시를 타는거니까 캐싱이 타게될 것같지만 다른 주소를 호출하게 된다. 즉 캐싱이 ..
[AWS] AWS 웹서버 세팅 및 구축 정리 간단하게 개발을 하다가 이제 이 개발소스를 자동으로 무중단 배포도 해보고, 어디서든 확인도 해보고 인프라쪽에 대한 지식도 필요하여, 나혼자서 웹서버를 구축하고 이를 설정해보면서 지식을 늘려가보려고한다. 1. AWS console 접속 및 회원가입(이건 별다른 설명없이도 초딩도 가능하다.)
[Two pointer] 15565번 풀이 https://www.acmicpc.net/problem/15565 15565번: 귀여운 라이언 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 www.acmicpc.net 귀여운 라이언 풀이 생각 보다 투포인터라는 개념만 있으면 쉽게 풀수있다. 우선 투포인터와 완전 유사하다. while 조건은 총 두개, left
[Two pointer] 16472번 고냥이 투포인터 고냥이 문제 https://www.acmicpc.net/problem/16472 16472번: 고냥이 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고 www.acmicpc.net 투포인터와 Map으로 해당 문제를 풀수있다. 처음에 버벅였던게 크다.... 이문제는 진짜 혼자 오래동안 풀었다...열심히좀 해야겠다...(자기반성) 우선 소스에서 크게 볼부분이 있다. 투포인터는 탐색의 경우, 아주 유용하다 (부분합 구할때랑 동일) 투포인터는 문제를 풀때 항상 유념해야되는 부분이있다. 즉, index를 1크게 생각을 해야한다. 예를 들어보자 처음에 00으로 시작했다. ..
[Spring] Invocation, RMI 관련 기초 개념 Spring invoaction이란 뭘까? 우선 invocation은 메소드 호출과 같은 의미이다. 메소드를 호출 이라는 의미이다. 1) 간단한 리플렉션 및 invoke 예제 우선 리플렉션으로, 클래스를 받아서, 다른 곳의 클래스의 메소드를 호출해보자 1) TestReflection으로, 리플렉션이 될만한 클래스, 그리고 하위에 메소드를 선언해준다. 2) 해당 다른 클래스에서 해당 클래스 파일을 리플렉션, 해당 메소드를 가져와서, 호출해보자 실제로, callbyName이라는 메소드를 invoke하고, 해당 값으로 콘솔에 gd가 출력이 되었다 이렇게 리플렉션으로 해당 클래스파일을 가져와서 호출할수 있다. 우선 리플렉션은, 그 클래스파일의 타입을 알지 못해도, 해당 클래스의 메소드를 사용할수있다. 해당 리플..
[Spring] AOP 예제 및 복습 1. AOP 에 대한 개념 AOP란 aspect Oriented Programming의 약자로, 관점 지향 프로그래밍이다. 쉽게 말하면 어떤 로직을 핵심적인 관점으로 나눠서 모듈화를 한다는 것이다. 관점은 대부분 이렇다 = 비즈니스 로직, DB연결, 로깅, 파일 입출력 등등 다른 부분에서 공통적으로 쓰는 로직들을 묶어서 모듈화하고, 이를 관점화 하는 것을 AOP라고 한다. 2. 주요 핵심 개념 1. aspect : 위에서 설명한 흩어진 관심사를 모듈화 하는작업 2. target : aspect를 적용하는 곳 (class 단위 or 메소드 단위 등등 패턴으로도 적용가능) 3. advice : 실질적으로 어떤일을 해야할지에 대한 것, 실질적인 부가기능을 담은 구현체이다. 4.jointPoint :advice..
[Spring] POJO이란? POJO란 Plain Old Java Object, 즉 단순한 자바 오브젝트를 의미한다. POJO란 객체 지향적인 원리에 충실하면서, 환경과 기술에종속 되지않고 필요에 따라 재활용 될수 있는 방식으로 설계된 오브젝트이다. 1. 특정 규약에 종속 x 이게 무슨 말이냐면, 자바 언어와 꼭 필요한 api외에는 종속을 하면 안된다. 다른 규약과 종속성이 생기는 순간 POJO는 더이상 신뢰할수있는 특정 클래스가 아니게 되고 해당 클래스에 객체 지향적인 설계 기법을 적용하기가 어렵다. 2. 특정 환경에 종속되지 않는다. 특정 기업의 프레임워크나 서버에서만 동작이 가능하면 POJO가 아니다. 자바언어와 범용성있게 어디서나 사용가능한 것들만 종속되어야 한다 (자바는 플랫폼에 독립적으로 실행가능하다.) 3. 객체 지향적..
[JPA] 다양한 연관관계 매핑 실습해보기 1. JoinTable 생성 JoinTable은, 특정 두가지의 엔티티의 매핑관계를 가지는 매핑테이블이라고 이해하면 쉽다. A,B라는 객체가 서로 매핑이 되어있는 경우, 이를 관리하기 위해 매핑테이블을 가지고, 이 매핑 테이블을 보고 두 객체의 매핑관계를 파악한다. 예 ) 카테고리, 아이템 카테고리 객체에서 해당 itemList를 볼수있는, manyto many를 사용해서 이렇게 조인 테이블을 만든다. 그러면 해당 엔티티 객체에서 해당 테이블이 생성이 된다.