본문 바로가기
반응형

공부/프로그래밍362

[SpringBoot2.x] Interceptor 안에 발생한 Exception, ControllerAdvice 로 관리하기. react + springboot 로 개발하던 중, axios 를 이용해 호출하는데 Interceptor에서 에러가 있어 Exception을 던졌는데, ControllerAdvice에서 캐치가 안되었다. 그래서 테스트를 해보니 조건부로 되었는데 아직 확실히는 못찾았다. 아마 CORS 때문에 그런거라 추측중이다. - postman 등 이용해 호출 => ControllerAdvice 에 캐치 가능 - react에 axios 호출 => ControllerAdvice에 캐치가 안됨. 그래서 Interceptor 에서 throw Exception 을 하지 않고 에러페이지로 전달하는 방식으로 처리했다. 여기서는 총 4개의 파일을 다룬다. 1. WebConfig.java => Interceptor 등록 클래스 2. .. 2018. 8. 4.
[JAVA] 객체 생명주기(LifeCycle) # 객체의 생명주기1. Created (생성)2. In use or reachable ( 사용중 )3. Invisible ( 사용 중이며 접근불가 )4. Unreachable ( 사용되지 않음 )5. Collected ( GC 대상이 되는 상태)6. Finalized ( Finalize 를 거친 상태 )7. Deallocated (메모리 해제 된 상태 ) # 단계별 상태 1. Created객체를 위한 메모리 공간을 Heap 에 할당합니다. 그 다음 Super class의 생성자 호출을 하면서 initializer 및 instance variable의 initialize 를 수행한 후에 객체의 생성자를 수행합니다. 2. In use or reachable ( 사용중 )객체가 생성되어 다른 객체에 의해 참조.. 2018. 8. 3.
[React.js] 생명주기(LifeCycle) 정리 react를 쓰다보면 생명주기를 알아두어야 편해서 이참에 정리합니다. # 컴포넌트 생성 constructor(props) - 컴포넌트가 새로 만들어질때 호출 componentWillMount() - 컴포넌트가 화면에 나가기 직전에 호출 - v16.x 이후부터 deprecate componentDidMount() - 컴포넌트가 화면에 나타나고 나서 호출 - 내 경우는 화면 먼저 보이고 jqury 플러그인을 적용해야 했을때 사용. : 예제) lightSlider 적용 : window.$(this.props.item.id + " .autoWidth").lightSlider({"item": 1}); 다음 순서로 실행 1. state, context, defaultProps 저장 2. componentWillMo.. 2018. 8. 2.
[알고리즘] 이진 검색(Binary Search) 이란? 가장 기초적인 알고리즘으로 꼽히며 검색 범위를 줄여 나가면서 원하는 데이터를 검색하는 알고리즘 입니다. 이진검색의 대표적인 예로 사전을 드는데, 사전에서 단어를 검색할때 'ㄱ'부터 찾는 경우는 없을 것입니다. 우선 가장 첫번째로 쓰이는 초성을 기준으로 사전을 펼치고, 위치에 따라 앞이나 뒤쪽으로 이동하면서 검색폭을 점점 좁혀 마침내 찾는 것을 말합니다. 검색할 항목이 있으면 가운데 지점의 값을 비교해보고 찾는 값보다 크면 뒤쪽 반을 자르고, 작으면 앞쪽 반을 자릅니다. 그리고 잘린 리스트를 대상으로 똑같은 행동을 반복합니다. 사실 이러한 행위는 재귀함수와 닮았으며, 대부분 이진검색은 비재귀로 구현되지만 본질은 재귀함수와 비슷합니다. 출처: http://glocalit.skhu.ac.kr/~mckim1/L.. 2018. 7. 31.
[React] Redux 사용하기전 알아야할 Flux 개념 Front-End에 사용되는 프레임워크의 대부분은 MVC(Model-View-Controller) 디자인 패턴을 채택했었습니다. 그런데 MVC 패턴이 명확하게 보여지면서 Flux 아키텍쳐가 등장하게 되었습니다. 우선 MVC 모델을 우선 살펴볼게요. MVC 패턴에서 컨트롤러(Controller)는 모델(Model)의 데이터를 조회하거나 업데이트하는 역할을 하며, 모델(Model)의 값인 뷰(View)에 반영됩니다. 그리고 뷰를 통해 데이터를 입력하면, 즉각 모델에 영향을 주면서 데이터를 관리하게 됩니다. 문제는 대규모 애플리케이션의 경우 MVC가 너무 빠르고 복잡해 진다는 점에 있습니다. 그래서 코드 예측이나 테스트의 어려움, 유지보수 비용 증가 등 여러가지 문제가 발생한 것입니다. 가장 대표적인 사례로 .. 2018. 7. 28.
[SpringBoot] session 을 redis 서버에 저장하기.(gradle) 세션클러스터링을 위해 세션 스토리지를 따로 구성하는 경우가 있는데 자주 쓰이는 것으로 redis 가 있습니다. 여기서는 윈도우에서 redis 설치와 세션정보가 redis에 저장될 수 있도록 구성하겠습니다. Redis 는 64비트 Windows 만 지원합니다. 1. Redis 설치하기. Redis는 공식적으로 윈도우를 지원하지 않습니다. 그래서 MSOpenTech라는 곳에서 지속적으로 윈도우 버전을 릴리즈 하고 있으니 아래사이트에서 다운받아 설치하면 됩니다. Zip 파일을 다운로드 받습니다. https://github.com/MicrosoftArchive/redis/releases 2. Redis 서버 인스톨 & 접속하기 받은 ZIP 파일의 압축을 해제하고 명령프롬프트로 해당 폴더로 이동합니다. 2. Re.. 2018. 7. 12.
반응형