본문 바로가기

개발43

HTTP와 HTTPS의 차이점 "그거 그냥 SSL 프로토콜 여부 차이 아니에요?" HTTP와 HTTPS HTTP는 Hyper Text Transfer Protocol의 약자로, 상태를 저장하지 않는 특성을 가지며 인터넷에서 서버와 클라이언트 서로 간의 통신으로 데이터를 주고받을 수 있는 프로토콜입니다. 이 프로토콜은 80 Port를 사용하며, 평문 데이터를 주고받기 때문에 보안상 취약하다는 점이 일반적으로 알려져 있습니다. 위의 보안 취약점을 보완하기 위해 등장한 것이 바로 HTTPS Hyper Text Transfer Protocol Secure입니다. 443 Port를 이용하고 보안 소켓 계층 SSL(Secure Socket Layer)을 이용하여 통신하게 됩니다. 이 SSL은 서버와 클라이언트 사이의 평문을 암호화하여 통신하며,.. 2022. 11. 9.
젠킨스 버전 업데이트하기 젠킨스 버전을 왜 업데이트해야할까? 젠킨스를 사용하다 보면 당연히 젠킨스의 버전이 업데이트가 필요한 경우가 옵니다. 젠킨스 자체의 취약점이 발견되어 조치될 수도 있고, UI 등의 변경이 이루어질 수 있기 때문입니다. 이제, 젠킨스의 버전 업데이트를 하는 방법을 알아봅시다. 1. 패키지 매니저(yum)를 통한 업데이트 CentOS7.9 버전 기준입니다. yum update jenkins 명령어를 입력합니다. [root@jenkins ~]# yum update jenkins Loaded plugins: fastestmirror, langpacks Determining fastest mirrors epel/x86_64/metalink | 6.6 kB 00:00:00 * base: mirror.kakao.com.. 2022. 11. 7.
리눅스 시스템의 파일 권한 리눅스 시스템의 파일 권한을 왜 알아야할까? 대다수의 사용자는 파일의 권한을 신경쓰지 않습니다. 아무 파일이나 관리자 권한으로 실행할 때가 많으며, 일반적으로 파일의 권한을 따로 부여할 필요가 없기 때문입니다. 하지만 리눅스에서는 파일(디렉토리 등)의 권한을 적절히 조절하여 보안에 신경써야합니다. 예를 들어, 하나의 서버에 여러가지 성격의 프로세스가 띄워져있다고 생각해봅시다. 이 서버는 웹메일 솔루션과 그룹웨어 솔루션이 설치되어 있습니다. 이 웹메일 솔루션의 관리자는 webmail이라는 사용자, 그룹웨어 솔루션의 관리자는 gw 라는 사용자를 사용합니다. 그룹웨어 관리자가 작업을 하다가 잘못해서 웹메일에서 사용하던 디렉토리/파일을 삭제하면 웹메일의 관리자는 눈물을 흘릴 것입니다. 이런 사고를 방지하기 위해.. 2022. 11. 6.
REST API REST API? REST를 기반으로 만들어진 API입니다. 여기서 REST란 REpresentational State Transfer의 약자로, 대충 "대표 상태 전송"이라고 하겠습니다. 이 REST는 쉽게 말해 3가지의 요소로 구성됩니다. 자원(Resource) : 고유의 URI를 갖는다. 행위(Verb) : HTTP Method 표현(Representation) : 클라이언트가 HTTP Method로 자원을 조작 시 응답(JSON, XML, String...)을 표현한다. 1. REST API의 특징 Uniform Interface (일관된 인터페이스) 모든 자원은 하나의 고유한 URI를 갖고 명확한 인터페이스로 구성되어 HTTP Request를 호출할 수 있는 어떠한 기술, 플랫폼(Java, Go.. 2022. 11. 5.
젠킨스 Jenkins 젠킨스란? 젠킨스는 웹 서비스의 빌드/테스트/배포 자동화. 즉, CI/CD 환경을 구축하기 위한 도구 중 하나입니다. 이를 통해 소프트웨어의 품질과 개발 생산성을 높일 수 있습니다. 💡 CI ? Continuous Integration의 약자로, 말그대로 지속적인 통합을 의미합니다. 새로운 변경사항이 정기적으로 빌드/테스트되어 공유되는 Repository에 통합하는 것을 말합니다. 이를 통해 여러 개발자는 서로 충돌할 수 있는 문제점을 해결할 수 있습니다. * 형상관리(SVN, Git 등)와의 차이가 무엇인가요? 형상관리는 말그대로 형상에 대해 저장만 합니다. CI 시스템은 형상관리 서버에 저장된 소스코드를 폴링하여 컴파일/테스트/코드 인스펙션 등을 수행하며 신규로 발생한 내역을 검증하고 개발자에게 피드.. 2022. 11. 3.
제어의 역전 (Inversion Of Control, IoC) 제어의 역전(IoC)이란? 프로그램의 흐름(객체의 생성, 소멸과 같은 생명주기 등)을 개발자(Application)가 직접 제어하는 것이 아니라 외부(프레임워크)에서 제어할 수 있도록 하는 것입니다. 이를 위해 Spring Framework에서는 Application을 구성하는 객체(Bean)를 관리하는 데에 IoC Container를 이용합니다. 이 IoC Container를 이용하여 DI, AOP가 가능해집니다. 💡 DI는 IoC를 구현하기 위한 디자인 패턴 중 하나입니다. 1. IoC의 구현 1-1. 프로그래머가 직접 제어하는 방식 public class SampleController { private Book book; public SampleController() { this.book = new.. 2022. 11. 2.