목록WEB (12)
DOing

항상 듣기만 했던 CI/CD에 대해서 이번에 공부를 해보려고 한다. 하나의 프로젝트를 끝까지 완료해보는 것도 좋은 경험이라는 말에 혹해서 공부해보기로 결심했다. 솔직히 말하면 프론트엔드 분들이 요청사항 추가할때마다 맨날 EC2들어가서 다시 배포하는게 너무 귀찮았다.. CI (Continuous Integration) 지속적 통합이란, 지속적으로 품질관리를 적용하는 프로세스를 실행하는 것이다. 고전적인 개발 프로세스는 개발을 완완료한 뒤에 품질 관리를 적용하는 방식이였다. 하지만 CI는 작은 작업단위의 작업에 품질 관리를 빈번하게 적용한다. 즉, 작은 기능들이 개발될 때마다 바로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합한다. 하루에도 여러번씩 병합될 수 있다. CI의 장점은 오류를 빠르게 감지할 수 ..

저번 포스팅에서 HTTP에서 인증이 필요한 이유와 인증방식 중 하나인 세션/쿠키기반 인증방식에 대해서 알아보았습니다. 세션/쿠키는 별도의 세션저장소를 두기때문에 DB의 부하가 생길수 있으며 확장성의 문제, 세션 하이재킹의 위험이 있었습니다. 이를 보완해서 나온 인증방식이 바로 토큰기반 인증방식입니다. 이번 포스팅에서는 토큰기반 인증을 알아보고 토큰기반 인증 중 가장 많이 사용되는 JWT에 대해서 알아보겠습니다. 🌱 토큰 기반 인증 동작방식 토큰 기반 시스템의 구현 방식은 시스템마다 크고작은 차이가 있겠지만, 대략적으로 보면 다음과 같습니다. 1. 사용자 로그인 요청 2. 서버에서 회원인지 확인합니다. 3. 계정정보가 정확하다면 유저에게 Access 토큰(Signed Token이라고도 합니다) 발급합니다...

🌱 인증? 인증(Authentication)이란, 사용자가 자기자신을 증명하는 일입니다. 사용자 A와 B가 하나의 웹사이트를 사용한다라고 가정해봅시다. 두 사용자가 가지고있는 회원정보와 컨텐츠는 각각 다를 것이다. 따라서 서버에서는 A, B가 요청을 보냈을 때 누구의 요청인지를 구분해내야 합니다. 그렇지 않으면 B의 민감한 개인정보가 A에게 보여지는 일이 발생할 수 있기 때문입니다. 그래서 브라우저에서는 자신이 누구인지를 증명할 수 있는 정보를 서버에 보내야하며, 서버는 그 단서를 바탕으로 사용자에게 맞는 데이터를 보내주어야 합니다. 🌱 HTTP와 인증 현재 웹에서 가장 많이 사용되는 통신방식은 HTTP 통신입니다. HTTP 통신의 가장 큰 특징 중에는 비연결성(connectionless)와 무상태(st..

💡 빌드? Build는 작성된 코드를 실제 기기에서 실행 될 수 있는 소프트웨어로 변환하기 위한 과정을 말한다. 보통 컴파일을 포함한 배포하기 직전까지의 모든 과정을 ‘빌드 한다’ 라고 표현한다. 실제로 회사나 프로젝트 팀마다 용어를 조금씩 다르게 사용하는 경우가 있으니 참고해두는 것이 좋다고 한다. 심지어는 코드가 완성된 직후, 컴파일부터 배포하는 모든 과정을 ‘빌드 한다’고 표현하는 경우도 있다고 한다. 💡 빌드 도구? 작은 프로젝트라면 개발자가 수동으로 라이브러리 의존성을 추가해주고 빌드 할 수 있을 것이다. 하지만 프로젝트가 커진다면 많아진 라이브러리를 직접 추가하여 빌드하는 일은 번거로움이 따른다. 심지어 코드 수정을 할때마다 이와 같은 과정을 반복하게된다면 굉장히 비효율적이며 실수를 유발하기 ..

웹서버를 배포하려다보니 .war, .jar 파일이 헷갈려서 짚고 넘어가보려고 한다. [ JAR ] 자바프로젝트 압축 파일포맷 Java Archive 자바 클래스 파일과 클래스가 이용하는 관련 리소스 및 메타 데이터를 모아서 배포하기 위한 소프트웨어 패키지 파일포맷이다. - 원하는 구조로 구성 가능 - JRE(Java Runtime Envirment)만 가지고도 실행 가능 [ WAR ] 웹 어플리케이션 압축 파일포맷 Web application Archive Servlet/Jsp 컨테이너에 배치할 수 있는 웹 어플리케이션 압축 파일 포맷이다. JSP, Servlet, Class, XML, HTML, Javascript 및 웹 애플리케이션을 함께 이루는 자원들을 모아 배포하는 데 사용된다. 즉, 웹 관련된 ..

[ Dyanmic IP adress] 동적으로 부여되는 IP, 유동 IP, 동적 IP 부족한 IP주소를 효율적으로 사용하기 위한 방법 중 하나이다. 예전에는 컴퓨터마다 Static IP(고정 IP)를 사용하였다. 하지만 컴퓨터의 수가 폭발적으로 증가하게 됨으로써 IP주소가 부족해졌다. 고정 IP를 사용하면 꺼놓은 컴퓨터에도 IP를 하나씩 할당해야했다. 때문에 IP를 필요로 하는 컴퓨터에게 동적으로 IP를 할당해주고 사용하지 않으면 반환받아서 다른 컴퓨터가 사용할 수 있게 한다. [ DHCP ] IP를 필요로 하는 컴퓨터에게 자동으로 할당해서 사용할 수 있도록 해주고, 사용하지 않으면 반환받아 다른 컴퓨터가 사용할 수 있도록 해주는 프로토콜 Dynamic 동적으로 Host 인터넷에 연결된 컴퓨터들에 Con..

인터넷 위에 있는 컴퓨터간의 통신을 위해서는 IP주소가 필요하다. 그래서 1980년에 IPv4를만들었다. 0.0.0.0~255,255,255,255 약 42억개의 주소를 표현할 수 있었다. 하지만 스마트폰, web, IoT가 등장하면서 인터넷에 연결되는 컴퓨터가 기하급수적으로 증가했고 2011년 2월 4일부터 42억개의 IPv4주소가 모두 소진되어 IPv4의 할당이 중지되었다. 대신 IPv6라는 새로운 주소체계를 만들었다. 하지만 주소체계를 바꾸는 일은 쉽지 않기때문에 당분간의 IPv4를 아껴써야했다. 그 방법 중 하나가 공유기다. [ 공유기 ] Home Router. 라우터의 많은 기능들 중 NAT기능을 특화시켜 가정용으로 사용되는 소용량 라우터이다. ISP에서 할당해주는 하나의 IP를 이용하여 여러대..

24시간 구동하는 서버를 위해 다음과 같은 선택을 할 수 있다. 1. 개인 PC로 웹 서버를 직접 운영한다. 2. 웹 호스팅 서비스 3. 서버 호스팅 서비스 4. 클라우드 서비스 개인 PC로 웹 서버를 직접 운영하기 웹서버를 운영하는 일은 쉽지않은일이다. 1. 컴퓨터가 있어야한다. 2. 언제 요청이 들어올지 모르니 컴퓨터를 24시간 켜놔야한다. 3. 웹서버라는 프로그램을 설치한다. 4. 집밖에서 웹서버의 연결할 수 있도록 여러가지 조치를 해야한다. 그래서 이런일을 대신해주는 회사들이 있다. 인터넷이 연결되어있는 컴퓨터 한대를 host라고 한다. 웹서버를 운영하기 위한 컴퓨터(host)를 빌려주는 회사를 호스팅 회사라고한다. ex) 국내에는 Cafe24, Gabia, toast 등이 있다. Web Host..