본문 바로가기

전체 글

(20)
Deprecated된 WebSecurityConfigurerAdapter 없이 CustomSecurityConfig 구현하기 In Spring Security 5.7.0-M2 we deprecated the WebSecurityConfigurerAdapter, as we encourage users to move towards a component-based security configuration. ​ 스프링시큐리티 5.7.0버전 이후로 WebSecurityConfigurerAdapter가 Deprecated되었습니다 참고하시라고 소스코드 올려봅니다. 참고로 예제소스는 남가람북스 구멍가게코딩단의 코드로배우는 웹 스프링부트 프로젝트 입니다. AS-IS 소스 ​ @Configuration @Log4j2 @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = tru..
전자정부프레임워크 프론트엔드 리액트에 관한 소식입니다. 백엔드로는 스프링부트, 프론트엔드로는 리액트가 나왔습니다. 참고로 스프링부트는 최근 beta버전으로 나온 egov 4.0에서부터 추가되었습니다. ​ 이번에 log4j2이슈로 인하여 2.16.0으로 업데이트 되었습니다. log4j2업데이트는 전체적인 버전에서 업데이트가 이뤄졌습니다. (공식홈페이지) ​ ​ 이번에 나온 소스들은 참고로 JDK 버전은 여전히 1.8에 maven 3.8.1버전 입니다. ​ 리액트 버전은 Hooks 이후버전으로 보입니다. ​ API Server를 호출할때는 Fetch API로 Promise기반으로 사용하는것처럼 보입니다. https://github.com/eGovFramework/egovframe-template-simple-react/blob/main/src/context/eg..
2021년 12월 9일 Apache Log4j에 대한 취약점이 발견되었다고 하네요. log4j zero day 공격에 관한 취약점 이슈입니다. 2.0부터 2.14.1버전까지 해당하고 취약점 레벨은 심각한수준이라고 하네요 -> Level of the vulnerability: Serious (Critical) ​ 관련된 페이지들입니다. https://dataportal.kr/51 ->번역 https://www.cyberkendra.com/2021/12/worst-log4j-rce-zeroday-dropped-on.html ->원문 https://www.lunasec.io/docs/blog/log4j-zero-day/ ​ ​ 현재까지는 2.14.1 버전까지 취약점이 발견된상태고 2.15버전에는 영향이 없다고 합니다. 2.15.0버전 링크입니다. https://logging.apache.or..
Spring 각 영역에 따른 개발 전 준비 * 각 영역에 따른 개발의 준비 ​ 본격적인 개발에 들어가기 전에 미리 각 영역에 필요한 준비물 등을 준비해두는것이 좋다. ​ 영역 준비 설명 데이터 베이스 관련 관련 스키마, 계정의 생성 개발에 사용할 스키마를 정의하고, 개발에 필요한 사용자 계정 등을 생성한다. 테이블 설계와 생성 실제 작업할 테이블을 설계하고 각 테이블의 관계를 ERD 등을 사용해서 그려둔다. 더미 데이터의 추가 테스트를 위한 가상의 의미 없는 더미데이터를 추가해서 개발 시 결과를 확인할 때 사용한다. 스프링 MVC 관련 패키지 구조 결정 개발에 사용할 패키지 이름이나 코드 규칙 등을 미리 지정한다. 개발 역할 분담 팀원들 간의 개발 역할을 어떻게 할 것인지를 결정한다. 이때 수평적 혹은 수직적인 분할을 하게 된다. 테스트 방법의 ..
스프링 MVC에서 주로 사용하는 어노테이션의 종류 스프링 MVC에서 주로 사용하는 어노테이션의 종류 ​ 스프링 MVC에서는 컨트롤러가 상속 등의 전통적인 기법을 사용하지 않는 대신에 어노테이션으로 많은 일을 처리한다. 주로 많이 사용하는 어노테이션은 다음과 같다. ​ @어노테이션 설명 사용 @Controller 스프링 MVC의 컨트롤러 객체임을 명시하는 어노테이션 클래스 @RequestMapping 특정 URI에 매칭되는 클래스나 메소드임을 명시하는 어노테이션 클래스, 메서드 @RequestParam 요청(request)에서 특정한 파라미터의 값을 찾아낼 때 사용하는 어노테이션 없다면 파라미터에 이름을 기준으로 리플렉션하여 찾아낸다. 파라미터 @RequestHeader 요청(request)에서 특정 HTTP헤더 정보를 추출할 때 사용 파라미터 @Path..
제어의역전(IoC)/ 의존성(의존관계) 주입(DI) 제어의역전(IoC)/ 의존관계 주입(DI) ​ IoC/DI는 스프링의 핵심개발 원칙이다. 스프링의 3대 기술인 AOP,PSA도 IoC/DI에 바탕을 두고있다. 왜 두 개의 오브젝트를 분리해서 만들고 인터페이스를 두고 느슨하게 연결한 뒤 실제 사용할 대상은 DI를 통해 외부에서 지정하나? 이렇게 DI방식으로 하는것이 new 키워드로 생성해서 사용하는 강한 결합을 쓰는 방법보다 나은가? ​ 간단한 답변은 '유연한 확장이 가능하게 위해서' 이다. DI는 개방 폐쇄 원칙(OCP)이라는 객체지향 설계원칙으로 설명된다. 유연한 확장은 OCP의 '확장에는 열려있다(개방)'에 해당하고, '변경에는 닫혀있다(폐쇄)에도 해당한다. 폐쇄 관점에서의 장점은 '재사용이 가능하다' 로 볼 수 있다. A -> B라는 의존관계를 갖..
<context : annotation-config> vs <context : component-scan> 유사하지만 차이점은 존재한다. ​ 둘 다 application-context에 정의해서 사용한다. ​ ​ ​ 이미 등록된 bean에 대해서만 Annotation을 활성화 시킨다. ​ 어딘가에 bean을 등록하면 @Autowired와 @Qualifier Annotation을 해석해서 가져다 쓰겠다는 의미다. ​ @Autowired 와 @Qualifier Annotation 이 두가지만 해결할 수 있다. ​ 사용하려면 xml에 bean을 반드시 선언해주어야 한다. ​ ​ bean등록 여부와 상관없이 사용이 가능하다. ​ 스프링이 알아서 bean을 스캔하고 Annotation을 해석하고 활성화 시킨다. ​ base-pakage="" 안의 클래스들을 스캔하고 빈 인스턴스를 생성 한 뒤에 아래와 같은 어노테이션이..
자바스크립트 리터럴 식별자 익명함수 화살표 표기법 AJAX JSON 리터럴(literal) ? ​ 리터럴이란 값을 프로그램 안에서 직접 지정한다는 의미이다. 리터럴은 값을 만드는 방법이다. 자바스크립트는 유저가 제공하는 리터럴값을 받아서 데이터를 만든다. ​ ​ 함수 리터럴 ? 프로토 타입 ? new ? 저도 개인적으로 궁금한 부분이었지만 궁금한 분들도 계신것 같아서 올려봅니다. https://medium.com/@bluesh55/javascript-prototype-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f8e67c286b67 [Javascript ] 프로토타입 이해하기 자바스크립트는 프로토타입 기반 언어라고 불립니다. 자바스크립트 개발을 하면 빠질 수 없는 것이 프로토타입인데요. 프로토타입이 거의 자바스크립트 그 자체이기때문에 이해하는 것이..