전체 글

멋진 개발자가 되자
JWT(Json Web Token)는 RFC7519 웹 표준으로 지정되어있고. JSON객체를 이용해서 토큰 자체에 정보들을 저장하고 있는 Web Token이라고 정의할 수 있다. 특히, JWT를 이용하는 방식은 무겁지않고 아주 간편하고 쉽게 적용할 수 있기 때문에 사이드 프로젝트를 진행할때는 아주 유용한 방식이라 아닐까 생각된다. 물론, 몇가지 고려해야할 사항들만 잘 대응하면 대규모 프로젝트에서도 충분히 사용될 수 있는 인증방식이라고 생각한다. JWT는 Header, Payload, Signature 3개의 부분으로 구성되어있다. Header : Signature를 해싱하기 위한 알고리즘 정보들이 담겨있다. Payload : 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들을 담..
서론 스프링 MVC를 책으로 공부하다가 인프런에 SpringBoot 무료 강의를 들었다. 그래서 바로 활용해 보기 위해 SpringBoot로 토이프로젝트를 진행하고 있는데 SpringMVC와 SpringBoot에 대해 정확히 알고 사용해야 할 것 같아서 찾아보게 되었다!! 먼저 간단한하게 알아보자 Spring Boot는 Spring Framework를 사용하는 프로젝트를 아주 간편하게 셋업할 수 이쓴 스프링 프레임워크의 서브 프로젝트다. 독립 컨테이너에서 동작할 수 있기에 JAVA만 설치 되어 있으면 되기 때문에 개발하기 한결 수월하다. 또한 빌드 후에 jar파일이 생성되고, 별도의 서버 설치 없이 embeded tomcat이 자동으로 실행된다. 또 프로젝트 생성 시 기존 스프링에서 처럼 복잡한 설정이 ..
공부를 하며 자주 접했지만 좀 더 정확히 알고 내것으로 만들고 싶어서 다시 알아보고 포스팅 하며 공부를 해보겠습니다! RESTful API란? 먼저 RESTful API라는 단어에서 사용되는 REST(REpresentational State Transfer)의 개념을 먼저 알아보자. 한줄로 정의하자면 "HTTP 통신에서 어떤 자원에 대한 CRUD요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식"이라고 정의 할 수 있다. 즉, REST란 어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것으로, Get, Post 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정..
· git
github를 이용해 혼자 공부하는 프로젝트를 관리하면서 smtp를 이용하려고 스프링 .properties 파일에 내 구글 계정과 비밀번호를 입력했는데 .gitignore에 적용하지 않고 그냥 올려버렸다.. 그래서 방법을 이리저리 찾아보다가 filter-branch를 이용해 손쉽게 히스토리를 삭제하던데 나는 보편적인 것을 사용하였는데도 unchanged가 뜨면서 적용이 되지 않았다.. 그래서 우여곡절 끝에 명령어 코드를 찾아 시도했더니 성공!! 그 명령어들은 바로 gitbash에서! *.properties에 삭제하려고하는 파일명 $ git filter-branch --force --index-filter "git rm --cached --ignore-unmatch *.properties" --prune-..
컴퓨터 지식이 없을 때 부터 http랑 https를 흔하게 접해왔다. 그런데 그게 뭔지 궁금한적도 딱히 없었고 그냥 인터넷을 이용할 사용자일 뿐이었다. 지금은 다르다. 나는 개발자의 길로 나아가고있고, 공부를 하다보니 이러한 용어들이 궁금해지기 시작햇고, 뛰어난개발자가 되기 위해선 사소하고 기본적인 이러한 지식들을 잘 익히고 온전히 내것으로 만들어야 한다. 먼저 망나니개발자님의 블로그에서 가져온 자료임을 밝힙니다. 출처: https://mangkyu.tistory.com/98 HTTP란 무엇인가 HTTP(Hyper Text Transfer Protocol)는 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 ..
jsp/servlet에서 mvc패턴을 공부할 때 DAO DTO VO 를 접했었다. 그런데 그당시엔 그냥 받아들이기만 했었던것 같다. 최근 SpringBoot공부를 하면서 웹페이지를 만들어보려 하는데 mvc패턴을 쓰고자 여기저기 검색 해 보았는데 처음 보던 Entity/ Domain 클래스 등이 나와서 살짝 당황 했다. 그래서 내가 지금까지 Dao,Dto,VO 들도 자세하게 알고 있지 않았던 것 같아서 다시한번 정리하며 머리속에 잘 세겨보려 한다!!! 전체 구조 (Package 기준) DAO ( Data Access Object) = repository package - 실제로 DB에 접근하는 객체. - Persistence Layer(= DB에 data를 CRUD하는 계층)이다. - Service와 DB..
스프링 부트에 mysql을 연동하다 보니 아래와 같은 에러가 떴습니다!! 찾아보니 오류 메세지에 써있는 것과 같이 서버 시간 관련 에러라고 합니다. mysql 5.1.x 버젼 이후에서 발생한다고 합니다. 바로 해결 방법으로 가봅시다. 첫번째 JDBC URL에 옵션 추가 jdbc:mysql://localhost:3306/example?serverTimezone=UTC&characterEncoding=UTF-8 URL에 ?serverTimezone=UTC 을 추가하는 방법입니다. UTC(Coordinated Universal Time:세계 협정시)는 예전의 GMT(Greenwich Mean Time)가 표준화 된 것입니다. 저는 위처럼 해도 에러가 떴습니다. 그래서 찾아보니 KST라는 것이 있기에 적용해 보..
· 언어/JAVA
자바 공부를 하다보니 "->" 이처럼 보이는 코드가 나와서 당황 한 적이 있다. 그래서 찾아보니 수학공부를 하며 자주 들어본 "람다"식 이라는 것 까지 알고 넘어갔지만 다시 정확하게 알고 넘어가야 할 것 같아서 이렇게 피드를 남겨보려 한다. 람다함수 람다함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous function)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표한하는 방법입니다. 한편에서는 람다식이 너무 많은 코드를 생략하다보니 오히려 프로그램의 가독성을 저해시킨다는 의견도 있다고 합니다. 람다의 특징 람다 대수는 이름을 가질 필요가 없다. - 익..
해시에 대한 이해를 높이기 위해 이 문제에 도전했다. 그런데 우선 나는 해시함수에 대해 모르는게 많았고 이해도 잘 못하고 있었다. 그래서 우선 문제를 풀고 다른 사람들이 풀어놓은 코드를 보면서 이해를 높이기로 하였다. 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 점두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solu..
Spring을 공부하면서 AOP라는 것을 알게 되었는데 이 AOP를 적용하면 스프링 컨테이너 안에서 의존관계가 실제 Service에 가기 전에 프락시 Service를 거쳐 간다고 해서 프록시가 무엇인지 궁금해서 찾아보았고 잊어버리지 않기 위해 기록하려 한다!! 프록시란? 프록시는 "대신"이라는 의미를 가지고 있다. 프로토콜에 있어서 대리 응답 등에서 사용하는 개념이라고 할 수 있다. 보안상의 문제로 직접 통신을 주고받을 수 없는 사이에서 프록시를 이용해서 중계를 하는 개념이라고 볼 수 있다. 이렇게 중계 기능을 하는 것을 "프록시 서버"라고 부른다. 프록시의 장점 프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 캐시를 이용해서 저장한다. 이 캐시 안에 있는 정보를 요구하는 요청이 들어온다면 원격 서..
나는이지훈
나는이지훈