본문 바로가기
관리자

Programming-[Backend]

(417)
[TIL] 생성자 내부 멤버 메서드 실행(생성자 안에서 메서드 실행) 1. 배경 생성자 내부에서 메서드를 실행할려고 했다. 아래와 같은 코드이다. public MessageQueueAccessor(String name) { super(); this.name = name; } public MessageQueueAccessor(String name, String url) { super(); this.name = name; this.url = url; this.sendMessage(); //중략 private void sendMessage() { //로직 } } 즉 name, url을 인자로 받는 특정 생성자를 통해 인스턴스를 생성하는 경우 필드값을 초기화할 뿐 아니라, 멤버 메서드인 sendMessage 로직도 실행하고자 했다. 그런데 역할상 생성자가 초기화에만 관여해야지, ..
[Oracle] Oracle Xe 다운로드 및 설치, 기본 계정 설정, sql plus, IntelliJ 연결하기(IO Error : The Network Adaptor ...) 1. Oracle 데이터베이스 Oracle은 여러 종류의 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나이다. 구매 및 유지 보수 비용이 크지만 그만큼 확실한 안정성과 유지보수를 보장받을 수 있기 때문에 대기업이나 공공기관에서 많이 사용한다. 데이터베이스 관리 시스템(DBMS)들은 SQL 표준을 준수하기 때문에 어떤 DBMS 사용하더라도 큰 문제는 없으나, DBMS 별로 기능이나 문법이 조금씩 달라서 가장 널리 쓰이는 Oracle DBMS를 사용하는 것이 처음 학습에 좋다. Oracle XE 버전 개요 Oracle XE(Oracle Express Edition) 버전은 공개 소프트웨어로 4GB의 메모리와 4GB의 데이터 파일까지 무료로 사용할 수 있다. 2. 다운로드 및 설치 아래 링크에 들어가서 ..
[링크][탐험][작성중] WebMvcConfigurer, WebMvcConfigurationSupport, @EnableWebMvc 전체적 개념 https://goodgid.github.io/Spring-WebMvcConfigurer/ WebMvcConfigurationSupport, WebMvcConfigurer 차이 https://wedul.site/349
[링크] isAssignableFrom 과 instanceof의 차이 1. 문법 차이 s instanceof String s.getClass().isAssignableFrom(String.class) 2. 확인 시점 차이 instanceof 은 컴파일 시점에 타입 체크 isAssignableFrom은 런타임 시점에 불특정한 클래스에 대한 타입 체크 다시 말해 instanceof 쓰면 쓰는 순간 IDE에서 바로 잡아냄, isAssignableFrom은 프로그램 실행하고 실제 해당 구문이 실행될 때 클래스 타입을 확인함 3. null Safe 차이 null instanceof {어떤 클래스} 는 false 반환 {어떤 클래스}.class.isAssignableFrom(null)은 NullPointerException 반환 참조 https://blog.naver.com/Post..
[탐험]Spring MVC, String 전체 앞 뒤 공백 제거하기! - MappingJackson2HttpMessageConverter, @JsonFormat, StringTrimmerEditor 1. 목표 SpringMVC를 이용하는 프로젝트에서 클라이언트의 입력값으로 들어오는 String 문자열 값의 앞 뒤 공백을 제거한다. "이름" : " 컴퓨터 탐험가 " -> "이름" : "컴퓨터 탐험가" 위와 같이 String의 앞 뒤 공백을 제거하는 것을 Java, Spring 쪽에서는 trim이라고 한다(자바스크립트에서도). 이 글의 목표는 프로젝트 전체에서 String값을 trimming하는 방법에 대해 정리하는 것이다. 개별 필드에 대한 trim에 대해서도 조금은 다룬다. 2. 방법과 적용 범위 집중적으로 다룰려고 하는 내용은 프로젝트 전체에서 trim을 적용하는 방법이다. 다만 이럴 경우 사용자가 의도적으로 문자열 앞뒤로 공백을 넣는 경우는 작동하지 않게될 수 있다. 예를 들어 비밀번호 입력 시..
[스프링 시큐리티]25. Method 방식 : Map 기반 DB 연동 1. 원리 이해 이번에는 Method 방식을 적용하되, 어노테이션을 따로 추가하지 않고 DB에 저장된 resource-role 정보를 받아와서 특정 method에 권한 설정을 해주는 방식을 공부한다. 우선 원리 이해를 위해서 여지껏 공부해온 url방식과 method 방식의 작동 원리를 도식화하여 비교해본다. url 방식 url 방식에서 요청이 들어오면, FilterSecurityInterceptor를 상속한 객체가 FilterInvocationSecurityMetadataSource 정보를 받았다. 이 정보 안에 RequestMap이라는 Resource-Role 관계 정보가 담겨져 있었고, 이것을 DB로부터 받아서 인가처리를 하는데 사용했다. 실습때 SecurityConfig 설정파일에서 customFi..
[스프링 시큐리티]24. Method 방식 : 어노테이션 API 이해 1. 권한 종류 권한 어노테이션의 종류 @PreAuthorize, @PostAuthorize SpEL(Spring Expression Language)을 지원한다. @PreAuthorize("hasRole('ROLE_USER')and(#account.username == principal.username)") 과 같이 쓸 수 있다. PrePostAnnotationSecurityMetadataSource가 처리한다. @Secured, @RolesAllowed SpEL을 지원하지 않는다. @Secured("ROLE_USER"), @RolesAllowed("ROLE_USER")처럼 쓸 수 있다. SecuredAnnotationSecurityMetadataSource, Jsr250MethodSecurityMet..
[링크] 스프링 AOP 용어 개념 정리 AOP는 Aspect Oriented Programming의 약자이다. 관점에 따라 프로그래밍을 하겠다는 뜻이 된다. 코드에서 공통적으로 나타나는 부가적인 기능을 모듈화하여 하나의 관점(Aspect)로 바라보고 공통화한다. 주요개념 Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함. Target : Aspect를 적용하는 곳 (클래스, 메서드 .. ) Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체 JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올 때 등 다양한 시점에 적용가능 PointCut : JointPoint의 상세한 스펙을 정의한..