본문 바로가기

728x90

전체 글

(33)
[ Design Pattern ] Abstract Factory Pattern 추상 팩토리 패턴 Abstract Factory Pattern 추상 팩토리 패턴 이란? 추상 팩토리 패턴은 클래스의 연관된 서브 클래스들을 묶어 쉽게 교체하는 패턴이다 팩토리 메소드 패턴에서 서브 클래스들을 대신 생성하는 로직들이 있는데 이걸 없애는데 사용하는 패턴이다 즉 새로운 기능이 추가 되더라도 이전에 구현한 코드들에 영향을 주지 않고 생성할 수 있다. Abstract Factory Pattern 추상 팩토리 패턴 어떨 때 사용 하지? 시스템의 하나의 기능이 여러개의 사용자 별로 지원하는게 상이 할 떄 객체 묶음들을 함께 사용 해야 하는 경우 객체의 생성 구성 등 표현방법들이 독립적이여야 하는 경우 Abstract Factory Pattern 추상 팩토리 패턴 구조 Abstract Factory Pattern 추상 ..
[ Design Pattern ] Factory Method Pattern 팩토리 패턴 Factory Method Pattern 팩토리 패턴 이란? 팩토리 패턴이란 객체 생성 과정을 분리하여 그것만 처리 하는 패턴이며, 인터페이스를 구현한 클래스가 여러 개 라면 해당 클래스들을 어떠한 상황에 맞게 클래스를 찾아 생성 해줘야 불편함을 해소 하기 위한 패턴이다. 간단한 팩토리 패턴은 메서드를 통해 객체 생성을 관리할 수 있다. Factory Method Pattern 팩토리 패턴을 어떨 때 사용 하지? 어떠한 클래스를 만들 때 타입을 미리 알 수 없는 경우나, 어떠한 클래스를 만들고, 해당 클래스가 연속적인 클래스를 필요한 경우 어떠한 클래스를 특정 하기 위해 서브 클래스가 필요한 경우 또는 복합한 클래스 내부 구조를 간단하게 만들기 위한 경우 Factory Method Pattern 팩토리 ..
[ AWS ] VPC VPN 이란 VPC를 알기 전에 VPN을 먼저 알아보자. VPN은 가상 사설망이라고 불린다. 단어와 맞게 가성이니 실제 가설망이 아니라는 소리다. 회사 내에 네트워크가 있을 것이고, 그걸 개인 네트워크로 분리하고 싶다면 내부선 전용선 다 뜯어고쳐야 하는데 이걸 쉽게 하기 위해 가상의 망 VPN를 사용한다. VPN는 각각의 네트워크가 실제로 같은 네트워크상에 있지만 논리적으로 다른 네트워크인 것처럼 동작하게 한다. 이걸 가상 사설망이라고 한다. VPC (Virtual Private Cloud 버추얼 프라이빗 클라우드) 위 그림처럼 VPC가 없다면 서로의 인스턴스를 연결해야 하고 인터넷과 연결을 해야 한다 이런 구조가 되어버리면 만약 하나의 인스턴스가 추가될 경우 문제가 생긴다 무슨 문제냐면 모슨 인스턴스를..
[ Spring ] Transaction(트랜잭션)의 모든것 Transaction 이란? Transaction은 데이터베이스의 상태를 변경시키는 작업의 단위이다. 데이터베이스에서 데이터를 다룰 때(데이터 추가, 갱신, 삭제 등) 처리하던 작업이 오류가 발생했을 때 모든 일련의 작업들을 원상태로 되돌린다. 모든 일련의 작업들이 성공해야만 최종적으로 데이터베이스에 데이터를 갱신, 삭제, 추가가 된다. 이러한 트랜잭션은 여러 상황에 따라 여러 개가 만들어진다. 하나의 트랜잭션에 Commit 되거나 Rollback 될 수 있다. 위의 말이 해당 말과 같다고 보면 된다. 예를 들어 보겠다. 어느 application에 충전 금액이 있고, 충전을 하게 되면 보너스 포인트를 제공한다 가정하자. 한 사용자가 금액을 10000원 충전하려 한다.(포인트는 100포인트) 해서 DB에..
[ Spring ] @RestController @Controller 차이 @RestController @Controller 차이 @RestController는 스프링 4.x 이상부터 사용 가능한 어노테이션이다. @Controller에 @ResponseBody가 결합된 어노테이션이라고 보면 된다. @RestController는 문자열, JSON 형태의 데이터 반환할 때 주로 사용된다. 하여 Restful Api 개발할 때 주로 사용한다. @RestController을 사용하면 메서드에 @ResponseBody 어노테이션을 안 써도 문자열과 JSON을 반환할 수 있다. @Controller public class MemberController { private final MemberService memberService; public @ResponseBody Member getM..
[ Java ] static함수 static 변수 static에 대하여 java에서 static 키워드는 메모리에 할당되어 application이 종료가 되었을 때 지워진다. 아래는 메모리 영역이다. 해당 메모리 영역을 보면 static영역이 있고 힙 영역이 있다. static영역은 사용자가 만든 Class가 들어가고, 힙 영역은 new 연산을 통해 생성한 객체가 들어간다. (힙 영역은 GC(Garbage Collector)가 수시로 관리 한다. 하지만 static영역은 관리하지 않는다.) static영역을 자주 사용하면 GC가 관리 하지 않기에 과부하를 일으킬 수 있다. static 함수 static 메소드는 new연산이나 객체 생성 없이 호출이 가능하다. 해서 많은 사용자들이 많이 호출되는 유틸 관련한 메서드에 static을 부여한다. public ..
[ Tomcat ] 메모리 설정 & 로그 설정 메모리 설정 톰캣 파일 중 catalina.sh 파일로 설정 -Xmsm : Java Heap의 최초크기를 지정 지정한 크기로 시작(Sun HotSpt JVM에서는 최초크기와 최대크기를 동일하게 부여할 것을 권장함) -Xmxm : Java Heap의 최대 크기를 지정 지정한 크기까지 커짐 -server : Server HotSpot JVM을 사용한다 이것은 데스크탑용 애플리케이션을 구동하는데 유리함 성능 최적화에 필요한 모든 과정을 최대한으로 수행한다 애플레키에션 구동 시작시간은 다소 느리지만 Client HotSpot JVM에 비해 성능이 좋다. -XX:NewSize=m : Young Generation의 시작 크기를 지정 -XX:MaxNewSize=m : Young Generation의 최대 크기를 지..
[ AWS ] Rekoganition 아마존 레코그니션 (2) Rekognition Image 이미지 작업 참고 사항 이미지는 JPG , PNG 형식의 이미지를 분석한다 -만약 바이트 배열로 이미지 분석 할 경우에는 base64로 인코딩 해야한다 하지만 자바는 AWS SDK 이미지를 자동 인코딩하므로 안해두된당 -S3Object 를 이용할 시 s3 버킷 리전과 Rekognition Image 리전이 같아야한다. -최근에 서울 리전이 추가 되었다 엔드포인트는 - rekognition.ap-northeast-2.amazonaws.com 리전은 - ap-northeast-2 서울꺼다 -Java , JavaScript , Python , PHP 외의 다른 AWS SDK를 사용하는경우는 Rekognition API 작업을 호출할 때 이미지 형식 오류가 발생하면 이미지 바이트..

728x90