전체 글
-
String, StringBuffer, StringBuilder 차이Java & 배경지식/기본상식 2020. 3. 19. 08:54
String new 연산을 통해 생성되는 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 문자열에 변화를 줘도 메모리 공간이 변하는게 아니라 새로운 String 객체를 만들어서 새로운 메모리 공간을 만드는 것 String 단점 새로운 문자열이 만들어지면 가비지 콜렉터에 의해 제거 문자열 연산이 많아지면 계속해서 객체를 만드는 오버헤드 발생 연산에 내부적으로 Char배열을 사용 String 장점 String 클래스의 객체는 불변하기 때문에 단순하게 읽어가는 조회연산에서는 타 클래스보다 빠르게 읽을 수 있다 불변하기 때문에 멀티쓰레드 환경에서 동기화를 신경쓸 필요가 없다. 결론 String클래스는 문자열 연산이 적고 조회가 많을 때 멀트쓰레드 환경에서 사용하면 좋음 StringBuffer, StringBu..
-
객체 지향적 5대원칙(SOLID)Java & 배경지식/기본상식 2020. 3. 19. 08:50
객체지향 5대원칙이란? 단일 책임원칙(SRP, Single Responsibility Principle) 객체는 단 하나의 책임만 가져야 한다. 개방-폐쇄의 원칙(OCP, Open Closed Principle) 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다. 전략패턴과 같이갈 수 있음 리스코프 치환 원칙(LSP, Liskov Subsitution Principle) 일반화 관계에 대한 이야기며, 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다. 부모 클래스와 자식 클래스 사이의 행위가 일관성이 있어야 한다. 인터페이스 분리 원칙(ISP, Interface Segregation Principle) 인터페이스를 클라이언트에 특화되도록 분리시키..
-
IoC 컨테이너와 빈(5) - ApplicationEventPublisher카테고리 없음 2020. 3. 19. 00:10
@Controller public class HomeController { @Autowired private ApplicationEventPublisher publishEvent; @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) throws Exception{ // 발생되어있는 이벤트를 등록되어있는 빈중에서 데이터를 출력 publishEvent.publishEvent(new MyEvent(this, 100)); return "home"; } } public class MyEvent { private int data; private Object source; public..
-
IP 가져오기Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 3. 18. 17:49
/** * IP 가져오기 * @author rlawl */ public class ClientIP { /** * IP 가져오기 * @param HttpServletRequest * @return IP */ public String requestClientIP(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null) { ip = request.getHeader("HT..
-
IoC 컨테이너와 빈(4) - 프로퍼티백기선(인프런 강의)/스프링 프레임워크 핵심 기술 2020. 3. 18. 12:29
프로퍼티 다양한 방법으로 정의할 수 있는 설정값 Environment의 역할은 소스 설정 및 프로퍼티 값 가져오기 프로퍼티에는 우선 순위가 있다. StanddardServietEnvironment의 우선순위 ServletConfig 매개변수 ServletContext 매개변수 JNDI (javacomp/env/) JVM 시스템 프로퍼티(-Dkey="value") 키와 value로 존재 JVM 시스템 환경 변수(운영 체제 환경 변수) @PropertySource Environment를 통해 프로퍼티 추가하는 방법 스프링 부트의 오부 설정 참고 기본 프로퍼티 소스지원(application.properties) 프로파일까지 고렿나 계층형 프로퍼티 웃너 순위 제공 스프링 부트를 공부하고 오자
-
IoC 컨테이너와 빈 (3) - Enviornment - 프로파일백기선(인프런 강의)/스프링 프레임워크 핵심 기술 2020. 3. 17. 13:10
EnvironmentCapable - 프로파일 ApplicationContext 가 아래와같은 인터페이스를 상속 받고 있다. public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { /** * Return the unique id of this application context. * @return the unique id of the context, or {@code null} if none */ String getId(); /** * Retur..
-
IoC 컨테이너와 빈(2) - 빈의 스코프카테고리 없음 2020. 3. 16. 23:10
빈의 스포크 싱글톤 애플리케이션 전반에 걸쳐서 해당 빈의 인스턴스가 1개뿐 @Service public class Proto { @Autowired private Single single; public Single getSingle() { return single; } public void setSingle(Single single) { this.single = single; } } @Service public class Single{ } @Controller public class HomeController { @Autowired Proto proto; @Autowired Single single; @RequestMapping(value = "/", method = RequestMethod.GET) p..