본문 바로가기

전체 글156

EC2 생성하기 AWS Free-tier 계정을 이용해서 EC2를 생성해보자 EC2란 Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. = 원하는 OS, Volum, 보안 그룹 등을 세팅한 클라우드 환경의 가상 컴퓨팅 자원을 할당 받을 수 있다. [1] EC2 대쉬보드 이동하기 먼저 아마존의 EC2 대쉬보드로 이동한다. 이동 방법은 검색을 활용하는 방법, 메인 화.. 2022. 3. 29.
대칭 암호화 & 메세지 기밀성 Chap. 2 Symmetric Encryption and Message Confidentiality Cryptography [암호화] Plaintext : 원문 Ciphers[암호] : 메시지 암호화 및 복호화에 사용되는 수학적인 함수 Encryption[암호화] : 메세지를 감추기 위해서 위장하는 과정 Ciphertext[암호문] : 암호회된 텍스트 Decryption[복호화] : 암호화된 메세지를 일반화된 메세지로 반환하는 과정 [1] Ciphers [암호] 제한된 알고리즘에 의존하는 암호의 보안성은 좋지않다. 사용자는 그룹을 떠날 때마다 알고리즘 변경이 필요하고, 보안은 언제든 깨질 수 있다. 현대의 암호화는 큰 세트(키 공간)에서 선택된 키 값에 의헤 의존된다. ex) 1024-bit Key =.. 2022. 3. 17.
Information Security Information Security 정보보안에서 주로 사용하는 용어 3가지는 Threat, Vulnerability, Risk로 그 뜻을 구분하면 다음과 같다. Threate(위협) : 데이터에 영향을 주거나 가로체는 등의 위협 Vulunerability(취약점) : 위협인자로 생길 수 있는 하드웨어, 소프트웨어, 사람, 절차등의 약점 Risk(위험) : 실제 Threate로부터 생겨날 수 있는 손실 문제점들 (예): 위협=도둑, 취약점=문을 잠그지 않음, 위험=도둑이 침입해 귀중품을 훔쳐감 이러한 위험을 미리 감지하고 방지하기 위해서 다양한 기술들이 사용된다. 보안 기술을 통해서 통신간의 Confidentiality, Integrity, Availabilty, Authenticity 등을 성취 가능 .. 2022. 3. 17.
웹 개발 프로젝트 2주차 저번주의 내용을 정리하면, 마크업 부분을 구매하고 ERD를 설계했으며 각 자 할일을 나눈뒤 GitHub를 통해 협업을 관리하기로 하였다. 분담 된 나의 업무는 댓글 관리쪽 백엔드 설계를 담당하게 되었다. 프로그래밍의 반은 설정이라고 얼핏 들은 것 같은데, 이번에도 Spring과 AWS RDS EC2를 연결하는데 애를 먹었다. 먼저 MysqlWorkbench에서 AWS를 연결하였다. 다른 클라우드 서비스는 사용 경험이 있지만 AWS 서비스는 처음 사용하는 것이라 조금 막막했지만 팀원들의 도움을 받아서 잘 설정할 수 있었다. AWS의 RDS는 Mysql로 설정해서 만들어 두었고, 보안그룹은 실제 서비스를 제공하지는 않기 때문에 모두 열어두었다. 먼저 mysql workbecnch에서 AWS RDS로 엔드포인.. 2022. 3. 17.
정규화 정규화란 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 이러한 테이블을 분해하는 정규화 단계가 정의되어 있는데, 여기서 테이블을 어떻게 분해되는지에 따라 정규화 단계가 달라지는데, 각각의 정규화 단계에 대해 자세히 알아보도록 하자. 제 1 정규화 : 테이블 컬럼이 원자값을 갖도록 테이블을 분해하는 것을 의미한다. 아래의 양식을 살펴보면 주문 상품이라는 컬럼에서 다중 값과 다중 속성을 가지고 있는 것을 확인 할 수 있다. 이는 제 1 정규형에 위배되고 이를 분리시켜 각 각의 테이블로 분해하는 것을 제 1정규화라고 한다. 주문번호.. 2022. 3. 10.
Spring Session & Cookie [1] HTTP 요청과 응답 웹 서비스는 HTTP 프로토콜을 기반으로 사용자와 통신한다. * HTTP 프로토콜은 클라이언트의 상태정보를 가지지 않는 서버 처리 방식의 stateless 기반 프로토콜 * HTTP 프로토콜은은 클라이언트 요청에 대한 응답 후 연결을 끊는 비-연결지향 처리 방식이다. 상태 정보 처리 방식 Stateful [ 상태 유지 ] 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존함을 의미한다. 즉, 순차적으로 정보들을 기록하면서 다음의 요청에 대해 그 정보들을 토대로 응답한다. Stateless [ 무 상태 ] 클라이언트와 서버 관계에서 서버가 클라이언트 상태를 보존하지 않는 것을 의미함 즉, 정보들을 기록하지 않고 새로 생겨나는 요청들에 새롭게 응답한다. [장점] 서버의 확.. 2022. 3. 9.
MyBatis Mybatis란 Mybatis는 SQL mapper라고도 불리며 Spring과 독립적인 프레임워크로, Java에 국한되지 않고 DAO 객체와 SQL문을 알아서 Mapping해주는 Persistence Framework이다. (Java Objcet와 SQL 을 자동 매핑 기능을 가진 ORM framework이다 ( object relational mapping ) ) Mybatis의 특징 > 독립적인 프레임워크로 C나 C#, Ruby 등의 언어에서도 사용이 가능하다. > SQL을 그대로 이용하면서 도메인 객체나 VO객체를 중심으로 개발이 가능하다. > XML 형태로 서술된 JDBC 코드를 통해 깔끔한 소스코드를 유지하는 것이 가능하다. > SQL과 코드의 분리 MyBatis는 Spring framework.. 2022. 3. 7.
Spring Bean & Dependency Injection(DI) Spring Boot 계층형 아키텍처 패턴 앞서 Spring Boot의 계층형 아키텍처 패턴에 대해서 다시 짚고 넘어가자 ! 위의 그림은 아래와 같이 정리할 수 있는데 1. 표현 계층 [@Controller] : Clinet의 요청을 받아 app계층에 처리를 위임하고, 최종 결과를 Client에게 전달함 2. 애플리케이션 계층 [@Service] : 애플리케이션을 위한 다양한 비지니스 로직들이 위치하고, 데이터가 처리된다. 3. 데이터접근 계층 [@Repository] : DB에 접근하여 CURD를 수행하는 역할 Spring Service 계층은 시스템의 핵심 비지니스 로직을 구현하는 계층으로 , 데이터를 저장하고, 연산 처리, 사용자에게 표시할 내용 선택 등 실제 서비스의 수행이 이루어지는 부분이다. .. 2022. 3. 1.
Spring의 Request & Response Spring Framework에서의 Request & Response 처리 1. Spring Controller : 요청에 대한 처리 ( Controller ) - Annotation을 통해 Spring Framework를 통해 run-time 내 코드 생성 & 추가 작업 지시 계층형 아키텍처의 Presentation Layer에 해당함 Client의 요청에 대해 Application Layer로 처리를 위임하고 기본적으로 요청은 url , 응답은 view or data [1] Controller의 역할을 수행할 클래스를 지정하자 ! [1-1] @Controller : return의 정보를 View파일의 리턴값으로 받아들인다 ( html ) 기본 View파일의 위치는 ( resource/templetes.. 2022. 3. 1.
Spring 서비스 계층 Spring의 MVC 계층 M [ 데이터처리 ] , V [ 화면 처리 ] , C [ 뷰와 모델을 연결 ] Spring MVC 역할 Spring MVC가 작업 지원 > URI를 분석해 알맞는 Controller를 찾아준다. > Controller에 필요한 메서드를 호출해준다. > Controller의 결과 데이터를 VIEW로 전달해준다. > 적절한 VIEW 페이지를 찾아서 연결해준다. 개발자의 역할 > 특정 URL에 동작하도록 Controller를 설계한다. > 서비스 객체를 생성한다 ( 약한 결합 ) > DAO 객체를 생성한다. ( 약한 결합 ) > Controller 내부 동작을 설계한다. > View에서 전달받은 데이터를 출력한다. spring의 계층은 크게 3 분류로 나눌 수 있다. 그 분류 체계는.. 2022. 2. 28.
백준 단계별 <문자열2 > 2908 자바 상수 import java.io.IOException; import java.util.Scanner; import java.util.StringTokenizer; public class Q2908 { public static void main(String args[]) throws IOException { Scanner sc = new Scanner(System.in); StringTokenizer st = new StringTokenizer(sc.nextLine(), " "); String tmp1 = st.nextToken(); String tmp2 = st.nextToken(); String win = "0"; for (int i = 2; i >= 0; i--) { char c1 = .. 2022. 2. 28.
MSA : 패턴과 핵심 기술 MSA ( Microservice Architecture ) 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐를 의미함 기존의 전통적 개발 방식에서는 전체 단일 코드 베이스로 개발했했고, 단일 코드 베이스를 빌드/배포함 모놀로틱 아키텍쳐 전통적인 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 로직이 들어가 있는 구조로 구성되어 있다. 이렇게 구성된 애플리케이션의 소스 코드는 하나의 프로젝트로 구성되어 있으며, 단일 패키지로 배포되게 된다. 빌드 및 배포 시간, 서버의 기동 시간이 오래 걸린다. 부분적 스케일 아웃이 어렵다. 안정성이 떨어진다. 간단한 기능 추가가 어려움 작은 수정 부분을 위해서 통합 테스트를 수행해야 한다. 부분적 장애가 전체 .. 2022. 2. 26.
반응형