전체 글 41

[IntelliJ+JAVA+Gradle] 간단하게 웹 서비스 띄워보기

IntelliJ 에서 JAVA 웹 서비스를 띄어보려고 한다. 먼저 IntelliJ 설치부터 진행한다. 설치가 완료되면 기본적인 설정을 해야한다. 1. Java와 Gradle, Spring Web으로 간랸하게 선택해준다. 2. 새 프로젝트 생성 후, 상단에 testApplication -> Edit configurations -> Templates -> Tomcat Server -> Local 에서 톰캣 설치 경로 입력한다. 해당 프로젝트를 로컬에서 테스트할 때의 빌드 설정이라고 보면 된다. DB는 Mysql로 진행할 것이기 때문에 Driver를 설치해준다. 사실 이건 처음에 프로젝트 생성 시 설정에서도 선택해서 가능하다. 3. Mysql driver 라이브러리 추가 https://dev.mysql.com..

[JAVA] 2023.10.15

로그인, 로그아웃의 동작원리? 쿠키와 세션, 웹 스토리지 이론

로그인을 하고 그 후에 다른 페이지로 이동할 때, 서버는 이 사용자가 로그인된 사용자라는 걸 어떻게 알까? ​ 또는 장바구니에 넣어놨던 리스트들은 사이트 창을 닫아도 계속 남아있거나, 다시 보지 않음을 체크하는 팝업 창은 어떻게 동작하는 것일까? ​ 이런 과정들은 쿠키, 세션 또는 웹 스토리지를 활용한 기능들이다. 그럼 쿠키, 세션, 웹 스토리지는 무엇이며 어떻게 동작하는 지에 대해 정리해봤다. ​ 일단 이것을 이해하기 위해서는 HTTP 프로토콜에 대해 이해를 해야한다. HTTP 프로토콜은 Client와 Server가 통신하는 통신 규칙이다. ​ HTTP 프로토콜 ​ HTTP의 특징은 대표적으로 connectionless(비연결성), stateless(무상태)가 있다. 그렇기 때문에 Client(브라우저..

개발일기 2023.10.15

이클립트(Eclipse) 다운로드 및 설치 방법

JAVA로 프로그래밍을 하기 위한 이클립트(Eclipse) 설치 방법에 대한 포스팅이다 이클립스를 설치하기 전 먼저 확인해야 할 것이 있다 본인 PC에 jdk가 설치되어 있어야 한다 ​ 그 이유는 JAVA 프로그램을 실행시키기 위함이다 jdk는 자바 개발 키트(Java Development Kit, JDK)의 약자로 개발자가 만든 java(.java) 파일을 실행 파일(.class)로 만들어주는 역할이라고 보면 된다 ​ jdk가 설치 되어 있는지 확인 하기 위해서는 cmd 창에서 명령어로 확인 가능하다 설치가 안되어 있다면 다음과 같이 뜬다 > java -version > javac -version ​ jdk는 오라클 공식 홈페이지에서 다운로드 가능하다 https://www.oracle.com/java/..

개발일기 2023.10.15

방화벽이란? ip주소, 포트번호에 대한 이론적 내용 정리

​ 컴퓨터를 사용하다보면 방화벽이라는 건 많이 들어봤을 것이다 뭔가 보안에 관련된 접속을 차단하는 거 인거 같긴 한데... 정확히 뭔지 몰라서 이론적으로 정리해봤다 ​ 일단 방화벽에 대해 이해하기 위해서는 ip주소와 포트번호의 개념을 이해해야 한다 ​ ip주소는 인터넷에 연결되어 있는 모든 장치들을 식별하는 고유 주소다 보통 핸드폰, pc 등 각각 ip주소를 다르게 가지고 있다고 생각하면 된다. ​ 물론 한 장치에 여러 ip주소를 사용하게 하는 방법도 있다 pc의 경우, 네트워크 카드를 추가하면 다중으로 ip주소를 사용할 수 있다 ​ 자신이 사용하고 있는 기기의 ip주소를 확인하는 방법은 터미널을 열어서 ipconfig 명령어를 쳐보면 된다 (window용) ​ ​ 현재 나는 노트북에서 핸드폰 핫스팟을 ..

개발일기 2023.10.15

WEB 서버와 WAS(Web Application Server)의 차이

이번 포스팅으로는 WEB 서버와 WAS의 차이점을 알아보도록 하겠다. ​ 지난 번 포스팅에서 DNS의 개념과 동작과정에 대한 내용을 정리했었다. 이전 포스팅에서 DNS에 관한 포스팅을 올렸는데 해당 포스팅을 먼저 읽어보길 추천한다. https://miny-dev.tistory.com/6​ 그래서 클라이언트에서 도메인을 검색했고 컴퓨터에서는 DNS를 이용해서 ip주소를 알아냈는데 그 ip주소가 어떻게 웹 페이지로 보여지게 되는거지? 에 대한 고민을 해본 적이 있나? ​ 이를 이해하기 위해서는 WEB 서버와 WAS의 정의부터 알아야 한다. ​ 먼저 WEB 서버의 의미는 소프트웨어, 하드웨어적으로 나눠서 정의할 수 있다. ​ 소프트웨어적으로는 웹 브라우저에서 클라이언트에서 요청된 HTTP Request를 받아..

개발일기 2023.10.15

HTTP와 HTTPS 개념 및 차이점은 무엇일까?

인터넷을 사용하다 보면 어떤 URL이던 간에 http으로 시작하는 것을 확인 할 수 있다. 또한 URL 중에서도 http 로 시작하는 경우가 있고 https 로 시작하는 경우가 있을 것이다. ​ 이 두가지의 개념은 무엇이고 차이점은 무엇일까? ​ 먼저 URL의 개념부터 간단하게 설명하도록 하겠다. ​ URL은 웹 상에서의 주소체계이다. ​ 웹에서 보여지는 한 화면은 파일로 구성되어 있는 것인데, 웹에 존재하는 파일을 다른 파일과 구별하는 식별자라고 생각하면 쉽다. ​ 더 쉽게 이해하기 위해 URL의 구성을 살펴보도록 하겠다. ​ 예를 들어 만용의 블로그 URL로 예시를 들어보자면 ​ https://miny-dev.tistory.com/4 ​ https : 프로토콜 miny-dev.tistory.com :..

개발일기 2023.10.15

DNS(Domain Name System) 개념 및 동작 원리

인터넷을 사용하다 보면 도메인, ip 주소, URL 등의 용어를 들어본 적이 많을 것이다. 이 용어들의 차이는 뭘까? ​ 그리고 https://www.naver.com/ 를 검색창에 치면 어떤 과정을 거쳐서 네이버 홈페이지가 열리게 되는 걸까? ​ 용어의 차이를 먼저 알면 그 동작 과정에 대해 이해하기 쉽다. ​ 일단 도메인은 인터넷 주소라고 생각하면 된다. 네이버의 도메인은 https://www.naver.com/ 이며 구글 도메인은 https://www.google.com/ 이다. ​ 그럼 ip 주소는 무엇을 뜻하는 걸까? ​ ip 주소는 도메인 정보를 컴퓨터가 알 수 있게끔 숫자로 변형된 것이라고 보면 된다. 종류는 ipv4, ipv6 가 있고 public ip, private ip 등 더 딥한 이..

개발일기 2023.10.15

[Kotlin + Spring Security + JWT] 회원가입 로그인 기능 구현 (2)

지난 포스팅으로는 Kotlin 으로 회원가입 기능을 구현해봤다. https://miny-dev.tistory.com/4 그리고 로그인에 대한 이론적인 정리도 해보았다. https://miny-dev.tistory.com/11 로그인, 로그아웃의 동작원리? 쿠키와 세션, 웹 스토리지 이론 로그인을 하고 그 후에 다른 페이지로 이동할 때, 서버는 이 사용자가 로그인된 사용자라는 걸 어떻게 알까? ​ 또는 장바구니에 넣어놨던 리스트들은 사이트 창을 닫아도 계속 남아있거나, 다 miny-dev.tistory.com 이번 포스팅으로는 이론적인 내용의 로그인 기능을 실제 구현해보려고 한다. ​ 먼저 Spring Security라는 Spring 기반의 애플리케이션 보안을 담당하는 하위 프레임위크를 사용했으며 세션 I..

[Kotlin] 2023.10.15

[Kotlin + Spring Security + JWT] 회원가입 로그인 기능 구현 (1)

로그인은 사용자 인증을 통해서 사용자의 정보를 보호하고 사용자 인증을 목적으로 한다 Server에서 Client가 누구인지 알 수가 없기 때문에 사용자 인증 단계를 거쳐야 한다. ​ 보안에는 인증과 인가로 나누어 생각해볼 수 있는데, 인증 : 사용자의 본인확인 인가 : 사용자 별 접근 권한 의 의미를 담고 있다 ​ 그래서 kotlin 공부로 첫번째 프로젝트는 Spring Security 기반의 회원가입 로그인 기능을 구현해볼 생각이다 해당 프로젝트는 application.properties 에 8080 포트로 서비스를 빌드시켰으며 db는 mysql를 사용했다 ​ 기본적으로 패키지 구성은 controller, service, repository, dto, entity 로 나눌 수 있다 ​ 여기서 DAO/M..

[Kotlin] 2023.10.15

[Kotlin] 기본 문법 정리

최근 스터디를 시작하면서 Kotlin 이라는 언어가 눈에 띄었다 ​ Kotlin은 오픈 소스 프로그래밍 언어로 Java와 매우 유사하지만 간결하게 사용 가능하다 또한 자바와 호환성, 실용성, 간결성의 장점이 있다 ​ ​ 특징으로는 정적 타입 지정 언어로서 모든 프로그램의 구성요소를 컴파일 시점에 알 수 있다. 즉, 개발자가 타입을 선언하지 않아도 되는 타입 추론을 지원해줌으로서 컴파일러가 프로그램의 정확성을 검증하여 프로그램의 오류로 인한 중단 가능성이 줄어든다 ​ 두번째는 null 안정성이있다 kotlin은 null 값이 가능한 타입을 지원하기 때문에 java에서 가장 자주 발생하는 null point exception이 줄어든다 이것은 널 포인터에서 자유롭다고 표현한다고 한다 ​ 마지막으론 함수형 프..

[Kotlin] 2023.10.15