목록Study/JAVA (5)
DevYGwan
이번에는, JWT에 대해서 공부한 것을 공유해보려고 합니다. 기본적으로 JWT는 Json Web Token의 약자로, 데이터를 외부와 주고 받을 때 인증과 권한 부여을 위해 주로 사용합니다. 이번에 JWT Token을 가지고 이를 포함한 QR Code을 생성하여 처리하는 로직을 구현했는데, 이를 구현하면서 단순히 라이브러리를 통해 JWT을 생성하고, 인증하는 과정을 넘어서 JWT의 목적과, 암호화 기법에 대해 공부하게 되어 이를 공유해보도록 하겠습니다.공유에 앞서, 간단하게 JWT을 한번 정리해보도록 하겠습니다. ※ JWT란JWT(Json Web Token)의 약자로, Json 기반의 토큰을 의미한다.JWT는 클라이언트-서버 통신에서 효율적이고 간단한 인증 수단이다.JWT는 크게 세가지 부분으로 나뉘며..
코드를 짜다보면 항상 이런 생각이 듭니다. 좋은 코드란 무엇일까? 객체 지향적으로 코드를 짜려면 어떻게 짜는 것이 좋을까? 좋은 코드는 코드의 양이 많아질때 위력을 발휘한다고 생각합니다. 코드의 양이 적고 나 혼자 작업한다면, 사실 단순히 잘 동작하는 코드가 중요하지 좋은 코드를 작성하는 것이 많이 중요하지는 않다고 생각합니다. 하지만 코드의 양이 많아지고 남들과 협업하는 환경에서 단순히 기능만을 위한 코드를 작성한다면 이건 이기적인 마음이라고 생각합니다. 다른 사람이 내가 작성한 코드를 보고 이해하고 코드를 추가 및 수정해야되는데, 코드를 봤을때 해당 코드가 너무 지저분하다면, 코드를 이해하는데 너무 많은 시간을 사용해야 하기 때문입니다. 실제로 내가 코드를 작성하는 것보다 남의 코드를 보고 이해하는..
java의 final 키워드는 값을 변하지 않게 하기 위해서 사용합니다. 즉, 값의 불변성을 확보할 수 있도록 합니다. 해당 키워드는 변수, 메서드, 클래스에서 주로 사용할 수 있습니다. 물론 각각의 상황에 맞게 의미가 조금씩 바뀌긴 하지만, 기본적으로 "무엇가를 제한한다" 라는 의미는 동일합니다. 해당 키워드는 개인적인 작업보다 팀 단위의 작업에서 더 중요하게 사용됩니다. 만약 내가 어떤 변수를 사용했고 이 변수가 변하지 않아야 한다고 가정했을때, 내가 혼자 작업했을때는 바로 알 수 있습니다. 하지만 팀 단위의 작업에서는 이 변수가 고정되야되는지 상대방이 모를 수 도 있습니다. 혹은, 코드가 복잡해지면 실수로 해당 변수를 건드릴 수도 있습니다. 이러한 문제를 사전에 방지하기 위해 자바에서 제공하는 키워..
자바의 역사 '썬' 의 언지니어들에 의해서 개발되었다. (제임스 고슬링과 아서 밴 호프와 같은 개발자들이 발명함) 자바의 원래 목표는 가전제품 등의 소형 기기에 탑재될 소프트웨어를 만드는 것이었다. 자바의 기본 구문은 C++에서 객체지향 관련 구문은 스몰톡이라는 객체지향언어에서 가져왔다. 그런데, 여러 종류의 운영체제를 사용하는 컴퓨터들이 통신하는 인터넷이 등장하자 운영체제에 독립적인 JAVA가 적합하다고 생각해 개발 방향이 바뀌었다. 거기다 네트워크와 분산처리에 용이해 서버를 개발하는데 용이하다.(Servlet, JSP 등) -> JAVA SPRING이 등장했다. 자바 언어의 특징 운영체제에 독립적이다. 자바 가상 머신(JVM)을 통해 가능하다. 자바 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM ..
ArrayList로 초기화 하는 가장 기본적인 방법은 크게 3가지가 존재합니다. add() 메소드 사용 asList() 메소드 사용 List.of() 메소드 사용 이들은 ArrayList를 초기화할때 주로 사용하는 방법으로 사용 방법은, 1. add() 메소드 사용 public class Main { public static void main(String[] args) { List exampleList = new ArrayList(); exampleList.add(1); exampleList.add(2); exampleList.add(3); exampleList.add(4); exampleList.add(5); System.out.println(exampleList); } } 2. add() 메소드로 선..