JWT(JSON Web Token): 웹에서 안전한 개발을 하기 위한 도구

우리가 사용하는 웹은 공개된 세상이다. 프로토콜이 공개되어 있고, 자유롭게 접근할 수 있는 데이터들이 있다.  개발자들은 공개된 프로토콜과 데이터를 활용해 이를 공개된 정보를 사용자들에게 제공한다.  웹이 지향하는 이 개방성은 모두에게 방대한 정보를 제공하는 기회를 제공한다.  이것이 최초의 웹이 현재의 웹이 된 이유일 것이다. 웹 세상에서의 통신 하지만 모든 정보가 모두에게 공개될 수 있는 것은 아니다.  특정 …

Continue reading ‘JWT(JSON Web Token): 웹에서 안전한 개발을 하기 위한 도구’ »

.gitignore 파일을 깔끔하게~

협업하는 다른 친구에게 pull request를 보냈다가 알게된 팁인데 꿀팁인 것 같아서 정리해둔다. 보통 .gitignore 파일은 프로젝트 빌드 혹은 작업 과정에서 생기는 부산물들을 굳이 git에 포함시킬 필요가 없는 파일들 혹은 디렉토리들을 제외시키기 위해서 사용된다. 이런 파일들 가운데 내가 종종 포함시키는 패턴들이 IDE와 관련된 파일들이었다.  하지만 IDE라는건 개인적인 취향에 따라 다름이 있다. 사람마다 서로 다른 IDE에 대한 …

Continue reading ‘.gitignore 파일을 깔끔하게~’ »

Spring Data JPA를 활용한 DAO를 바꿔보자.

부트 이전에 스프링에서 데이터베이스를 그래도 다른 사람이 쓰는 만큼 쓸려면 MyBatis를 써줘야했다. MyBatis를 한번이라도 써본 사람이라면 알겠지만 복잡하다. 스프링 XML 설정의 복잡도에 MyBatis의 복잡도를 더하면 상당히 헬 수준으로 올라간다. 단순 목록 하나만 가져오는데 MyBatis를 쓰는건 형식주의에 빠진 불합리의 최상급이었다. 되려 JDBC를 가져다가 prepareStatement에 Bind 변수만 사용하는 것이 오히려 손쉽게 직관적일 수 있다. 글을 읽는 분들중에 Bind …

Continue reading ‘Spring Data JPA를 활용한 DAO를 바꿔보자.’ »

Maven을 이용해서 신규 프로젝트 만들기

한땀한땀 손으로 Maven 프로젝트를 만드는 것도 의미있는 일이지만 귀찮다. 와 같은 형태로 잡아주면 된다. 최근 개발은 Spring Boot를 많이 이용하기 때문에 여기에서 주로 쓸만한 archetype들을 나열해보면 maven-archetype-quickstart spring-boot-sample-simple-archetype spring-boot-sample-data-jpa-archetype spring-boot-sample-actuator-log4j-archetype Spring에서 사용할 수 있는 전체 Archetype 목록은 여기에서 확인 가능하다.  다만 Spring 기반으로 프로젝트를 생성시킬려면 기본 archetypeArtifactId 이외에 archetypeGroupId=org.springframework.boot 값을 추가로 줘야한다. 가장 대표적인 API …

Continue reading ‘Maven을 이용해서 신규 프로젝트 만들기’ »

JUnit Parameterized Test – 반복 테스트를 하는 뻔한 방법

JUnit에서 조건값을 바꿔가면서 테스트를 해야하는 경우에 이 방법을 사용하는게 테스트 비용을 아끼는데 좋다. 예제에서는 테스트를 위한 입력으로 PrimeNumberValidationInput이라는 클래스를 사용했다. 다른 책에서 예제를 인용할 때는 보통 Object[][]을 이용하는 경우가 많던데, 물론 간단한 수치 입력을 하는 경우에는 이 방법을 사용해도 크게 나쁘지는 않은 것 같다. 하지만 Object 변수를 사용한다는게 뭔가 테스트 코드의 품질을 떨어트리는 것만 같은 …

Continue reading ‘JUnit Parameterized Test – 반복 테스트를 하는 뻔한 방법’ »

git의 ssh key 설정하기

추가하는 방법은 git의 사용자 셋팅에 SSH Key추가하기를 하면 되는데… https://help.github.com/articles/generating-an-ssh-key/ 이미 예전에 추가를 해놨음에도 불구하고 왜 맥 터미널에서 자꾸 passphrase를 입력하라구 물어보는거야!! 와중에 이전에 입력해둔 문구를 까먹었는데!!! 별다른 방법이 없다. 다시 만들고 등록해두는 방법 밖에는. 다 하고 다음 명령어로 넣어두면 이후에는 안물어볼 것 같다. Share List

SonarQube 이용해서 만드는 CI

CI 들어봤나? Continuous Integration의 약자이다. 해석하자면 “지속적으로 통합하라” 라는 이야기다.  뭘? 코드를.  누가 작성한 코드를?  여러분과 여러분들의 동료들이 작성한 코드를 말한다. 왜 통합을 해야할까? 이유는 간단하다. 통합을 위해서. 뭔 소리냐구? 통합을 지속적으로 시도하는 이유는 바로 필요한 시점에 사고 터지는 걸 막기 위해서다.  누구나 익히 알고 있듯이 모든 개발은 팀 작업이다.  혼자 잘해서 되는 개발은 더 …

Continue reading ‘SonarQube 이용해서 만드는 CI’ »

AWS를 활용한 블로그 시스템 만들기

그동안 네이버에서 제공하던 블로그를 써서 글을 써왔다. 많지 않은 글이긴 하지만 그래도 근 10년 가까이 글을 쓸 수 있도록 해준 고마운 친구였다. 하지만 변화하는 세월앞에서 그 친구도 새로운 옷을 점점 갈아입기 시작하더니 결국에는 내가 싫어하는 스타일로 가버렸다. 개발자의 이야기를 많이 하고 싶은 심정이긴 하지만 받아주는 친구가 맛집에 너무 친화적으로 바뀌다보니까 개발자스럽게 글을 쓸 수 있는 …

Continue reading ‘AWS를 활용한 블로그 시스템 만들기’ »

git: terminal에서 간지나게 써보자.

Git을 이클립스나 IntelliJ에서만 사용해야한다면 좀 쪽팔릴 것 같다. GUI 없는 상황에서는 바보가 될 거기도 하고 뭔가 Cool하지 않다. 기억력은 역시나 3초말이라 항상 까먹는다. 흔하게 사용하는 것들 위주로 정리해놓는다. Git Repository 처음 사용하기 $ git init 현재 디렉토리를 git 저장소로 등록한다. $ git add –all 현재 디렉토리 및 그 하위에 있는 모든 파일들을 git의 변경 대상으로 …

Continue reading ‘git: terminal에서 간지나게 써보자.’ »