백엔드 24

AWS EC2 활용한 CI/CD 구축 (2)

안녕하세요. 2편에서는 1편에서 설명드렸던 CI/CD를 실제로 구축해보도록 하겠습니다. 1편을 확인하고 싶으신 분들은 아래 링크를 눌러주세요. AWS EC2 활용한 CI/CD 구축 (1) 1. 아키텍처 아키텍처는 아래 순서대로 진행합니다. 개발자 작업사항 커밋 → jenkins 빌드 실행 → GitHub 프로젝트 파일 빌드 → jenkins 빌드한 파일을 배포서버 ec2 인스턴스에 배포 → 배포 서버 ec2 톰캣 실행 → 스프링 부트 프로젝트 실행 완료 2. 구축순서 구축은 아래 순서대로 진행하도록 하겠습니다. 1. 개발 프로젝트 github 연동 2. AWS 계정 생성 → 2번 단계까지는 별도 설명없습니다. 3. IAM 사용자 추가 (그룹 생성, 권한 추가) 4. EC2 서비스 인스턴스 생성 5. EC..

백엔드 2024.01.25

AWS EC2 활용한 CI/CD 구축 (1)

안녕하세요. 이번 글에서는 CI/CD에 대한 개념과 CI/CD 이해에 도움이되는 AWS, 클라우드 컴퓨팅에 대해 설명드리겠습니다. 1. AWS와 클라우드 컴퓨팅 1-1. AWS(Amazon Web Services)란 Amazon Web Services는 아마존에서 제공하는 클라우드 서비스 플랫폼으로 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스를 제공합니다. [서비스 종류] Amazon EC2 가상 서버를 제공하여 애플리케이션 실행에 필요한 컴퓨팅 리소스를 제공합니다. AWS CodePipeline 소프트웨어 전달 프로세스를 자동화하기 위한 서비스로 소스 코드 변경 사항을 가져와 빌드, 테스트, 배포 단계를 설정하고 연결하여 전달을 지원합니다. AWS CodeBuild 소..

백엔드 2024.01.25

내장형 DB (인메모리 데이터베이스) 동기화

안녕하세요 이번 글에서는 내장형 DB (인메모리 데이터베이스) 종류와 Scale-Out 또는 HA 구조에서의 내장형 DB 동기화 기술 구현 방식에 대해 설명드리도록 하겠습니다. 내장형 DB (In-memory DB) 란? 디스크 베이스 DB와 반대로 메모리에 데이터를 저장하는 것을 인메모리 DB라고 합니다. 외부 저장 장치에 데이터를 저장하지 않고 메모리에서 데이터를 읽고 쓰기 때문에 디스크 베이스 DB 대비 데이터 이용 속도가 빠른 것이 특징입니다. Java에서의 내장형 DB 엔진은 일반적으로 Jar 파일 안에 포함되어 있으며 애플리케이션이 실행되는 동안 동일한 JVM 내에서 동작합니다. 내장형 DB 관련 기술을 구현하는 경우 데이터 저장 방식, 네트워크 구조 등 여러 데이터베이스 환경을 고려하여 데이..

백엔드 2022.12.21

시큐어 코딩 가이드 및 보안점검 도구를 통한 보안 취약점 점검 방법

목차는 아래의 순서에 따라 진행합니다. 1. 개요 2. 설계 예시 2-1 게시판 목록 2-2 게시물 조회 2-3 게시물 등록 2-4 게시물 수정 3. 보안 점검 도구 3-1 Burp Suite 3-2 Fiddler 3-3 Wireshark ----------------------------------------------------------------------------- 개요 OWASP에서 발표한 취약점 Top 10은 아래와 같습니다. A1. 인젝션 A2. 취약한 인증 A3. 민감한 데이터 노출 A4. XML 외부 개체(XXE) A5. 취약한 접근 통제 A6. 잘못된 보안 구성 A7. 크로스 사이트 스크립팅 A8. 안전하지 않은 역직렬화 A9. 알려진 취약점이 있는 구성요소 사용 A10. 불충분한 ..

백엔드 2021.07.12

웹 서비스 동작구조와 소켓 통신

안녕하세요. 이번 글은 웹 서비스 동작 구조와 소켓 통신을 알아보겠습니다. 목표 ● Client - Server 구조 ● Static Page & Dynamic Page 구분 ● Server 구성 및 Web/Was 차이 이해 ● Session & Timeout ● 3-Way handshake 이해 ● Apache 의 Timeout ● WAS(Tomcat)의 Timeout ● Web - WAS - DB 연동 ● WAS-DB 사이의 Timeout ● OS level Timeout Client – Server 구조 1 Client가 Server에 요청을 하면 Server는 결과물을 Client에 응답하는데 이러한 구조를 Client - Server 구조라고 합니다. 단순화시키면 위와 같은 모습을 가집니다. 이..

백엔드 2021.02.02

2020 보안기술 개발 동향

1. 서론 최근 인공지능 기술의 발전에 힘입어 사이버 공격자들은 새로운 형태의 지능화된 알고리즘을 활용한 신·변종 사이버 공격과 자동화 기술을 활용하여 대규모의 사이버 보안 공격을 시도하고 있다. 이러한 추세에 힘입어 점점 고도화되고 다양해지는 사이버 공격에 효율 적으로 대응하기에는 기존의 보안 솔루션들은 많은 한계를 보이고 있다. 사이버 위협에 능동적으로 대비하기 위해서 보안 업계에서는 인공지능을 보안 분야에 적용하는 것에 주 주목 하고 있다. 보안이 인공지능과 결합하게 되면 네트워크, 위협 인텔리전스, 취약점 분석, 악성코드 분석, 실시간 탐지 및 대응 등 다양한 보안 분야에서 보안 능력이 획기적으로 향상될 것으로 예상되고 있다 2. 인공지능 보안 위협 인공지능 기술은 분명 현재의 보안 기술단계를 한..

백엔드 2020.06.04

Secure Coding 메뉴얼 3편

안녕하세요. 이번 Secure Coding 메뉴얼 3편에서는 TestCase와 점검도구에 대해 알아보도록 하겠습니다. Secure Coding 전편은 아래 링크를 통해 확인해주세요. ▶ Secure Coding 메뉴얼 1편 ▶ Secure Coding 메뉴얼 2편 1. TestCase 1.1 회원가입 구분 보안요구항목 점검내용 SR1-1 DBMS 조회 및 결과 검증 중복아이디 검색을 위한 사용자ID에 쿼리를 조작할 수 있는 입력값으로 SQL 삽입공격이 시도될 수 있으므로 입력값 검증 우편번호 검색을 위한 입력값 조작하여 SQL 삽입 공격이 시도될 수 있으므로 입력값 검증 필요 SR1-5 웹 서비스 요청 및 결과 검증 회원가입을 위한 입력정보에 악의적인 스크립트가 포함 될 수 있으므로 입력값 검증 필요 S..

백엔드 2019.11.18

Secure Coding 메뉴얼 2편

안녕하세요. 이번 Secure Coding 2편에서는 보안 요구 사항 정의와 시큐어 코딩에 대해 알아보도록 하겠습니다. Secure Coding 1편의 내용은 아래 링크를 통해 확인해주세요. ▶ Secure Coding 메뉴얼 1편 1. 보안 요구 사항 정의 1.1 입력 데이터 검증 및 표현 1.1.1 SR1-1 구분 항목 요구 사항 내용 SR1-1 DBMS 조회 및 결과 검증 1. 애플리케이션에서 DB연결을 수행할 때 최소 권한의 계정을 사용해야 한다. 2. 외부 입력값이 삽입되어 SQL쿼리문을 동적으로 생성해서 실행하지 않도록 해야 한다. 3. 외부 입력값을 이용해 동적으로 SQL쿼리문을 생성해야 하는 경우 입려값에 대한 검증을 수행한 뒤 사용해야 한다. ▶ 데이터베이스와 연동되어 있는 어플리케이션의..

백엔드 2019.11.11

Secure Coding 메뉴얼 1편

1. 개요 소프트웨어 개발 보안 [배경] - 인터넷상 공격의 약 75%는 SW보안취약점을 악용하는 것으로, 특히 외부에 공개되어 불특정 다수를 대상으로 사용자 정보를처리하는 Web Application 취약점으로 인한 중요 정보가 유출되는 침해 사고가 빈번하게 발생하고 있음 - 미국의 경우 국토안보부를 중심으로 시큐어코딩을 포함한 SW개발 전 과정에 대한 보안 활동 연구를 활발히 진행 - 국내의 경우 행안부 시큐어코딩이 적용되는 대상 언어는 JAVA, C, 안드로이드 이며, 소프트웨어 업체는 SQL삽입, 크로스사이트스크립트 등 43개의 보안 취약점을 제거해야 함 - 2017년 정보 시스템 등급별 보안 관리 가이드라인을 개발하였으며 2018년 3월에는 정보 시스템 등급제 적용 근거를 행안부 고시인 ‘정보 ..

백엔드 2019.11.04

사내 IaaS 구축하기

1 오픈스택이란 IT 개발자로 일을 하다 보면 클라우드 컴퓨팅이란 단어는 한번쯤 들어 보셨을 겁니다. 클라우드 컴퓨팅이란 쉽게 말해 네트워크가 가능한 디바이스를 통해 클라우드라는 공간에서 데이터를 읽고 처리하고 관리하는 시스템을 말합니다. 클라우드 컴퓨팅의 종류로는 서비스에 따라 IaaS, PaaS, SaaS로 구분됩니다. IaaS(Infrastructure as a Service)는 서버, 스토리지, 네트워크를 가상화 시켜 필요한만큼 인프라 자원을 사용할 수 있게 제공하는 서비스입니다. AWS(Amazon Web Service)를 생각하면 됩니다. PaaS(Platform as a Service)는 개발을 위한 플랫폼이 미리 구축되어 있고 이 플랫폼 위에서 개발 및 배포를 쉽 게 해주는 서비스를 말합니..

백엔드 2018.06.25