Simplify Blog

Software engineering blog

SpringBoot - (10) Call Restful

SpringBoot - (10) Restful 호출하기

들어가며 서버 쪽 개발을 진행하다 보면, 다른 서버에 요청을 해야하는 경우가 있습니다. 예를 들어, 우리 서버 플랫폼에서 다른 플랫폼에 API를 Call하여 그 정보를 보여줘야 한다거나, 날씨, 주식 등의 Open API 를 사용하려고 하는 경우에도 RestTemplate를 사용합니다. 이러한 부분을 가장 손쉽게 사용하는 방법은 RestTempla...

SpringBoot - (9) Property, Authentication Principal

SpringBoot - (9) Property, Authentication Principal

들어가며 다음으로는, 설정 파일을 읽고, 현재 요청에 대한 사용자 정보를 조회하는 방법을 알아보도록 하겠습니다. API를 호출할 때, 내 정보를 같이 넘기게 해서, 이를 통해 사용자에 대한 상세 정보를 알 수는 있겠으나, 이렇게 하면 Client 쪽에서의 위변조를 통해 요청하는 사용자를 다른 사람으로 바꿔치기 할 가능성이 있습니다. (보안적으로도 해...

SpringBoot - (8) Deep into Logback

SpringBoot - (8) Logback 상세화

들어가며 Spring Boot 를 실행하면 로그가 잘 나옵니다. Eclipse (STS) 기준 Console View에 잘 나옵니다. Spring Boot 에는 기본적으로 Logback 이 포함되어 있기 때문에 아무런 작업 없이도 로그가 잘 나타납니다. 그런데 실제 환경에서는 이러한 Stream 형태의 Log는 아무런 의미가 없습니다. 왜냐하면 서버...

SpringBoot - (7-1) Handler for Login Success

SpringBoot - (7-1) Login 성공 시점에 처리하기

들어가며 앞서 Spring Security 를 구현한 내용에 따르면, 화면에서 넘어온 username 과 password를 이용해서 DB를 조회하고, 조회된 결과 정상적인 사용자이고, 그 사용자의 Authority 정보가 있으면 그것들을 조회해서 별도의 SecurityMember 라는 객체(User, 혹은 UserDetail 을 상속받는)로 만들고 ...

SpringBoot - (7) Security

SpringBoot - (7) Spring Security 적용하기

들어가며 지금까지 구현한 Spring Boot는 아주 기본적인 서버 프로그래밍이라고 할 수 있습니다. 서버는 Client가 조회해 달라고 요청(Request)하는 시점에 적절한 데이터를 DB에서 조회해 주는 역할이 기본이라고 할 수 있습니다. 그런데 이렇게 서버를 구현해 놓고 Client 가 폐쇄망이 아닌 공개된 곳에서 요청이 가능해야 한다면, 당연...

Child & Sibling Selectors

자식 노드 선택자

들어가며 웹을 구현하다보면, 정확한 답이없이 그때그때 잘 맞춰서 구현하는게 맞다는 생각이 많이 듭니다. 그런데 개발을 진행하다보면, 또 검색을 하다보면, 답은 아니지만 이상적인 방향이라고 생각하는 부분이 분명하게 존재합니다. 서버와 클라이언트의 하드웨어 성능이 좋아짐에 따라, 조금은 비 효율적인 방법을 사용하더라도 사용자 입장에서의 체감은 거의 없...

Selected Row for jqGrid

jqGrid 에서 선택된 행 관련사항 정리

들어가며 jqGrid 라이브러리를 사용하다 보면, 당연하게도 선택된 Row 에 대한 정보를 가져와야 하는 경우가 있습니다. 여러가지 방법으로 가져올 수 있고, 버튼을 달고, 체크박스를 넣어서 이벤트를 걸어도 되고 다 가능한 방법이긴 하지만, 기본적으로 현재 선택된 Row에 대한 정보를 가져와야 하는 경우 다음과 같은 방법으로 가져올 수 있습니다. ...

CSS select except last child

마지막 자식 노드를 제외한 선택자

마지막 Child 제외하기 마지막 Child 를 제외하고서, 다른 것들에 대해서만 특정 CSS를 적용해야 하는 경우 아래와 같은 CSS Selector를 사용하면 됩니다. :not() 은 ()안의 조건이 아닌 :앞의 tag를 선택하라는 것이고, :last-child 는 마지막 child 라는 것이므로, 마지막 child 를 제외한 나머지를 선택하는 ...

Linux Symbolic link

심볼릭 링크에 대해

들어가며 심볼링 링크.. 단어가 크게 와닿지 않지만, 그저 링크라고 생각하면 됩니다. 윈도우에서 바로가기 같은 개념인데, Console 을 주로 이용하는 Linux 의 경우, 명령어를 조금만 잘못 입력하면 문제가 생기는 경우가 있어, 포스팅하면서 한번 더 복습합니다. 실무에서도 예전에는 링크를 많이 만들었었는데, 사람들 손이 빨라져서인지, 아니면 ...

SpringBoot - (6) Hide private information

SpringBoot - (6) 민감정보 숨기기

들어가며 여기까지 개발하고 나서 GitHub에 소스 코드를 공유하려고 보니, Database에 대한 접속 정보가 그대로 노출되어 있습니다. application.properties에 보면 그 정보가 그대로 있는데, 실제 개발하는 환경, 업무든 개인이든 서버에 직접 접근하지 않는 이상 이 내용을 읽어내기란 쉬운 과정은 아니기 때문에 크게 걱정할 부분은...