반응형 공부/프로그래밍346 [Lunux] gradle 4.x 설치 root 권한에서 실행했습니다. 123456# opt 아래에 설치할 예정cd /opt# 다운로드sudo wget https://services.gradle.org/distributions/gradle-4.9-bin.zip# 압축해제sudo unzip gradle-4.9-bin.zipColored by Color Scriptercs # 환경변수 등록 # root에 등록하여 모두 사용할 수 있도록 합니다. 123456789101112131415161718192021222324vi /etc/profile # 아래 추가export PATH=$PATH:/opt/gradle-4.9/bin # 저장하고 나온 후 설정 적용source /etc/profile # 버전 확인gradle -v -----------------.. 2018. 8. 10. [SpringSecurity] 인증 실패 시 핸들링 하는 법. 스프링시큐리티로 Authorization인증을 할 때 ID와 Password 인증이 실패할 때 쓰입니다. Config Server 구성하는데 서버정보를 가져올 때 보안을 위해 인증과정을 거치게 했습니다. 문제는 이런서버는 로그인 페이지가 있으면 안된다고 판단했기 때문에 요청이 올때(GET으로 요청함) Auth에 username과 password를 보내 인증과정을 통과해야 한다고 판단했습니다. 그런데 이게 웹페이지로 요청을 하면 Spring Security의 기본로그인 화면으로 이동이 되었습니다. 로그인 화면을 아예 제거할 생각했었기에 다음과 같이 커스텀해야 했습니다. 그래서 실패한 경우 Json 형태로 '잘못된 접근'이라고 표기했습니다. 올리는 파일은 다음과 같습니다.- 의존관계 설정 => build.g.. 2018. 8. 9. [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. 이전 1 ··· 39 40 41 42 43 44 45 ··· 58 다음 반응형