Programming/Web 34

gcp vm 인스턴스 swap 스왑 메모리 적용하는 방법

GCP VM 인스턴스 스왑 메모리(swap) 적용하는 방법 스왑 메모리(swap memory)란? 시스템에서 메모리(RAM)가 부족할 경우 프로세스는 더 이상 작업을 이어가지 못하고 종료되는데요. 스왑 메모리는 시스템에 메모리가 부족한 상황에서 하드 디스크의 일부 공간을 활용하여 작업이 계속되도록 도와주는 영역으로, '하드 디스크의 일부를 RAM처럼 사용할 수 있게 만드는 방법'입니다. RAM처럼 사용할 수 있게 만들었다지만 하드 디스크 상에 위치하기 때문에 RAM에 접근하는 것보다 접근 속도가 느리며, 따라서 데이터를 처리하는 속도도 느린데요. 속도는 느리지만 메모리가 부족하여 시스템이 다운되거나 장애를 발생시키는 것 보다는 스왑 메모리를 활용하는 것이 안전성 측면에서 뛰어나다는 장점이 있습니다. 대부..

Programming/Web 2023.02.22

(html) a href 새 창 열기 및 크기 지정

a href 새 창 열기 및 크기 지정하는 방법 a tag 새 창 열기 태그는 하나의 페이지에서 다른 페이지로 연결하는 하이퍼링크(hyperlink)를 걸기 위한 용도로 사용되는데요. 태그에서 가장 핵심이 되는 속성은 링크의 목적지를 가리키는 href 속성으로 의 형식으로 주로 사용됩니다. a href 새 창 열기 새 창 열기 a href에서 새 창을 열기 위해서는 a 태그의 target 속성을 사용해야 하는데요. target 속성은 링크된 문서를 클릭했을 때 문서가 열릴 위치를 명시하는 용도로 사용됩니다. target 속성에 설정할 수 있는 값으로는 '_sefl', '_blank', '_parent', '_top'이 있으며, 링크를 새 창으로 열기 위해서는 '_blank'로 값을 지정해야 하는데요. '..

Programming/Web 2023.02.21

Nginx 이미지 서버 구축 방법(sites-available, sites-enabled)

Nginx 이미지 서버 구축 방법(sites-available, sites-enabled) 먼저 nginx에 대해 간단하게 살펴보면, nginx는 적은 자원으로 높은 성능을 내며, 특히 많은 트래픽이 있을 때, 동시 접속 처리에 특화된 웹 서버 프로그램인데요. Apache 웹 서버가 주로 사용되던 시기에 늘어나는 트래픽으로 인해 'C10K' 문제가 발생하였고, 이를 해결하기 위해 개발되어 2004년 릴리즈 되었습니다. * C10K: 하나의 웹 서버에 1만 개가 넘는 클라이언트의 동시 접속을 처리하지 못하는 문제 비동기, 이벤트 기반의 구조로 설계된 nginx는 다양한 용도로 사용될 수 있는데요. 주로 이미지 또는 HTML 등의 정적 콘텐츠를 제공하기 위한 웹 서버(HTTP Web Server)로 활용되거..

Programming/Web 2023.02.19

Base64와 Base64UrlSafe 차이점 (Illegal base64 character 발생 이유)

Base64 encoding, decoding 기능을 사용하던 중 java.lang.IllegalArgumentException: Illegal base64 character 2b 예외가 발생했는데요. 해당 Exception은 Base64와 Base64 UrlSafe의 차이점을 제대로 알지 못하고 사용하였기 때문에 발생한 것이었으며, 해당 문제를 해결하면서 관련 내용을 함께 정리하였습니다. * 결론을 먼저 말하자면 Base64 UrlSafe로 디코딩할 수 없는 문자를 디코딩하려고 했기 때문에 발생한 오류였습니다. Base64란? 8비트의 이진 데이터(Binary Data)를 문자 코드에 영향을 받지 않는 공통 ASCII 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 말합니다. Base64는 6..

Programming/Web 2022.12.17

빅 엔디언과 리틀 엔디언(Big Endian & Little Endian)

빅 엔디언과 리틀 엔디언이라는 생소한 개념을 접하며 정리한 내용입니다. 엔디언에 대해서 살펴보기 전에 비트와 바이트에 대한 내용부터 시작하여 살펴보도록 하겠습니다. 1. 비트와 바이트(데이터가 저장되는 방식) 눈에 보이지는 않지만 내부적으로 컴퓨터가 동작하는 원리는 비트(bit)라고 하는 '0'과 '1'로 표현되는 단위부터 시작됩니다. 비트는 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위로, 하나의 비트만으로는 많은 양의 데이터를 나타내기 부족하기 때문에 8개의 비트(bit)를 묶은 바이트(byte)라는 단위가 메모리에 저장되는 최소 단위로 정해졌습니다. (메모리 1칸은 1byte로 구성되어 있지만 실제 저장되는 데이터는 대부분 4byte 또는 8byte 크기로 구성됩니다.) 하나의 바이트..

Programming/Web 2022.11.05

FTP Active Passive Mode 정리

FTP란? FTP는 파일을 전송하는 통신 규약인 File Transfer Protocol의 약자인데요. FTP 서버에 파일을 업로드, 다운로드할 수 있도록 해주는 프로토콜이며, 이는 FTP 서버와 FTP 클라이언트 간의 통신에 사용됩니다. FTP 파일 전송에는 두 개의 port가 사용되는데요. 하나는 사용자 인증 및 명령어 입력을 위한 제어 채널(Command Port)이고 다른 하나는 실제 파일 전송을 위한 데이터 채널(Data Port)입니다. 연결 방식에는 Active 모드와 Passive 모드, 두 가지 방식이 있습니다. 기본적인 동작 방식은 Active Mode이며, Active 모드의 단점을 해결하기 위해 나온 것이 바로 Passive 모드인데요. 아래 이어지는 내용을 통해서 각 연결 방식의 ..

Programming/Web 2022.10.22

루프백 ip란? (127.0.0.1 / localhost)

루프백(Loopback) ip란? 루프백 ip, 루프백 주소는 네트워크상에서 자신을 나타내는 가상적인 주소이며, 자신에게 다시 네트워크 입력이 들어온다고 하여 루프백(Loopback) 주소라고 합니다. IPv4에서의 루프백 주소는 127.0.0.1이며, IPv6에서는 ::1 (0:0:0:0:0:0:0:1의 약자)로 사용됩니다. /* IPv4의 경우 Loopback ip는 127.0.0.0부터 127.255.255.255까지의 범위가 할당되지만, 일부 운영체제가 정확히 127.0.0.1을 사용하기 때문에 대부분 해당 주소를 사용하며, IPv6의 경우 ::1 단 하나의 주소만 사용합니다. */ 127.0.0.1 대신 localhost를 사용하는 경우도 있는데요. 로컬 호스트(localhost)는 컴퓨터 네트..

Programming/Web 2022.09.19

BCrypt 동작원리 파헤치기(BCryptPasswordEncoder)

BCrypt 암호화를 사용하면서 내부적으로 랜덤 한 salt가 생기고, 그에 따른 결과 해시 값이 매번 바뀌는 것을 확인하며 동작 원리가 궁금해서 찾아본 내용입니다. BCrypt 암호화는 무엇인지? 동작원리는 무엇인지? Java 코드를 통해 살펴보겠습니다. BCrypt란? BCrypt는 블로피시(Blowfish) 암호에 기반을 둔 암호화 해시 함수로 현재까지 사용 중인 가장 강력한 해시 메커니즘 중 하나이며, 1999년 USENIX에서 발표되었습니다. BCrypt는 패스워드를 해싱할 때 내부적으로 랜덤 한 salt를 생성하기 때문에 같은 문자열에 대해서 매번 다른 해싱 결과를 반환하는데요. (하지만 해싱 결과로 반환되는 String의 길이는 매번 60으로 동일합니다.) 이처럼 salt가 통합된 형식으로 ..

Programming/Web 2022.09.04

GCP 인스턴스 SSH 접속하는 방법

앞전에 아래 포스팅의 과정을 통해 구글 클라우드 플랫폼 GCP 무료 서버를 생성했었는데요. 서버 생성 후 'SSH 키를 통해 해당 서버에 접속하는 방법'에 대해 정리한 내용입니다. 해당 과정대로 진행하면 생각보다 간단하게 서버에 접속할 수 있습니다. (로컬에서 ssh 키를 생성 -> gcp에 ssh 키 등록 -> 인스턴스 접속) 구글 클라우드 플랫폼 GCP 무료 서버 생성하기(22년 6월 기준) 구글 클라우드 플랫폼(Google Cloud Platform) 무료 서버 생성하는 방법에 대해서 알아보겠습니다. 구글링을 통해 GCP 무료 서버 구축 방법을 찾아보면 포스팅이 작성된 기간에 따라 서버 구축에 관련 wildeveloperetrain.tistory.com 1. SSH 키 생성하기 ssh 키를 통해 서..

Programming/Web 2022.07.29

SSO(Single Sign-On) jwt 동작 이론 살펴보기

SSO란, SSO(Single Sign-On)은 하나의 시스템(인증 서버)에서 클라이언트에 대한 인증을 수행하고, 그 인증 정보를 가지고 추가적인 인증 없이 다른 서비스들도 사용할 수 있도록 하는 기능입니다. (통합 인증, 단일 인증, 단일 계정 로그인, 싱글 사인온 등으로 다양하게 불리고 있습니다.) Single Sign-On을 사용하면 여러 서비스에 대한 로그인 처리가 간소해지기 때문에 편리하다는 장점이 있는데요. 하지만 하나의 인증 정보로 여러 서비스를 사용하기 때문에 보안적인 부분에 대해 더욱 신경을 써야 하며, 결제, 개인정보 등 중요 요청의 경우에는 이중 인증 등의 절차를 추가하는 등의 과정이 필요합니다. SSO의 다양한 방식, SSO에서는 인증 서버를 거친 사용자의 인증 정보에 대한 유효성을..

Programming/Web 2022.07.24