반응형
반응형

📝안전성 요구사항

프로그래밍이 갑자기 다운되는 경우 처리를 어떻게 할 지에 대한 것

 

📝보안 요구사항

보안과 관련된 법을 고려해서 어떤 짓을 하면 안 되는지 어떤 부분은 반드시 필요한지에 대해 미리 정의해야한다.

 

📝소프트웨어 시스템 요구사항

가용성(간편한UI), 신뢰성(에러가 없는지), 이식성(다른 플랫폼에서도 작동), 유지 보수성(수정, 개선을 용이)를 고려해서 개발하기 위한 요구사항

 

📝데이터베이스 요구사항

데이터베이스를 사용하기전 ERD(구조를 설계)를 그리는 것

 

📝비즈니스 규칙 요구사항

기능에 필요한 요구사항과 제한사항에 대한 정의

 

📝운영 요구사항

시스템 운영하는데 필요한 요구사항

예를 들자면 데이터처리를 어떻게 할지, 데이터를 얼마만큼 모아서 한꺼번에 처리할지

 

📝사이트 적용 요구사항

시스템을 사이트에 적용하기 위해 필요한 요구사항을 정의 (어떻게 배치할지 등에 대한 것)

반응형
반응형

📝UML

소프트웨어의 개념 모델을 시각적인 그래픽 형태로 작성합니다. 엄청 다양한 다이어그램종류들이 있습니다

클래스 다이어그램, ERD, 시스템 아키텍처 등...

 

📝상태전이다이어그램

UML의 다이어그램 중 하나로서 전체적인 동작과정을 도식화한 것이다. 만약 기능이 많다면 여러개의 기능별로 분류해 그리는게 좋습니다.

 

📝데이터베이스 튜닝

데이터베이스의 성능을 향상하거나 응답시간을 단축시키는 것입니다.

 

📝데이터베이스 모델링

데이터베이스의 테이블(관계형 데이터베이스일 경우)을 어떻게 구성할지 구상하는 것을 의미합니다.

정답은 없지만 바람직한 답은 있습니다. 상당히 어렵고 중요한 작업이고 구현하려는 것에 대해 정확하고 폭 넓고 깊은 지식과 경험도 필요합니다.

개념적모델링 - 논리적모델링 - 물리적모델링의 진행과정이 있고 점차 세분화하는 과정입니다

 

 

📝개념적모델링

 

📝논리적모델링

 

📝물리적모델링

 

📝ERD (ER 다이어그램)

DB 테이블 설계의 물리적 모델링입니다.

반응형
반응형

📝리다이렉션

리다이렉션을 이용해 다른 장치로 변경할 수 있다

예) 표준 출력장치가 모니터로 되어있는걸 프린터로 바꾼다던가 합니다.

 

  • 표준출력
    • [명령 프롬프트 결과] (모니터)
  • 표준입력
    • [명령 프롬프트] (키보드)

 

 

📝출력의 방향을 바꾸는 기호 (>)

명령 > 파일명

명령어 내용을 파일명에 저장하는 것입니다.

 

notepad test.txt는 test.txt라는 파일을 만드는 것입니다.

dir > test.txt는 dir 명령어의 내용을 test.txt에 입력하라는 말입니다.

열어보면 위와 같이 되어있습니다

 

📝기존파일에 추가 입력하는 기호 (>>)

명령 >> 파일명

기존 파일에 있는 내용에 이어서 명령어를 입력하라는 의미입니다

 

여기에서 test.txt 에 dir 명령어의 내용이 담겨있는데 >를 쓸 경우 덮어쓰기가 됩니다.

>>을 쓰면 그 안에 내용은 보존하고 이어쓰기가 됩니다.

 

📝입력의 방향을 바꾸는 기호 (<)

명령 < 파일명

원래 키보드로 입력을 하는데 그걸 파일로 대체하고 명령을 이행하라는 의미입니다.

즉 파일에 내용이 명령어의 매개변수가 되는 것이죠

 

📝파일디스크립터 (fd)

리눅스, 유닉스는 컴퓨터의 모든 것을 파일로 모델링합니다.

 

  • 0번
    • 기본적으로 생성될 때 입력할 수 있는 기능이 해당 파일을 참조
  • 1번
    • 읽을 수 있는 기능이 해당 파일을 참조
  • 2번
    • 해당 파일의 오류를 출력해주는 기능이 해당 파일을 참조

 

그 후에 소켓, 다른 파일 등.. 이 파일을 참조하는 애들이 순차적으로 3번 4번 5번... 이런식으로 가지게 됩니다.

그러면 해당 프로세스의 3번을 읽으면 어떤 파일이 참조하고 있는지 알 수 있게 됩니다.

(번호로 매핑테이블을 만들고 빠르게 접근할 수 있다)

# 파일 디스크립터 갯수 세주는 쉘스크립트
pids=`ps -ef | awk '{print $2}'`
count=0

for pid in $pids
do
    tmp=`ls /proc/$pid/fd/ | wc -l`
    count=`expr $count + $tmp`
done

echo $count

 

1번째 testing.sh 실행vi로 파일을 열기전 전체 프로세스의 파일 디스크립터 개수입니다.

2번째 testing.sh 실행vi로 파일을 열었을 때 전체 프로세스의 파일 디스크립터 개수입니다.

 

해당 프로세스를 참조하는 곳과 파일 디스크립터 확인 명령어ls -all /proc/${pid}/fd/

렇게 참조하는 곳이 많아질 수록 숫자가 점점 늘어나게 됩니다.

 

📝프로세스

현재 시스템에 실행중인 프로그램을 의미합니다.

 

📝PID

프로세스는 번호로 관리됩니다 이걸 PID라고 합니다.

 

📝데몬 프로세스

특정 서비스 제공하는 프로세스

 

📝고아 프로세스

자식 프로세스가 살아있는데 먼저 부모 프로세스가 종료된 경우

 

📝좀비 프로세스

실행을 종료했는데도 프로세스 테이블에 남아있는 경우

 

반응형
반응형

📝리전

AWS 모든 서비스가 위치하고 있는 물리적 / 지리적 장소 예를 들어, 미국 서부 (Oregon) 리전, 유럽 (아일랜드) 리전 등이 존재한다 

 

📝가용영역

AWS 리전 내에서 독립적으로 운영되는 데이터 센터의 클러스터리전안에는 2개 이상의 가용영역이 존재한다하나의 가용 영역에서 장애가 발생해도 다른 가용 영역에서 서비스를 계속할 수 있습니다

 

📝에지 로케이션

전 세계적으로 분산된 데이터 센터로 주로 정적 파일 (이미지, 비디오 등)을 더 빠르게 전송하기 위해 사용하는 서버들의 영역 → Amazon CloudFront, AWS Shield 등....

 

📝CDN 서비스

주로 정적 파일 (이미지, 비디오 등)을 저장한 서버이며 해당 서버에 보안 등 여러가지 옵션을 넣을 수도 있다

 

📝ELB (Elastic Load Balancer)

ELB는 AWS에서 제공하는 로드 밸런서 서비스 중 하나로, 사용자의 트래픽을 여러 EC2 인스턴스로 분산시키는 역할 → ALB, NLB 등... 존재

 

📝ALB

ALB는 OSI 모델의 7계층(애플리케이션 레이어)에서 동작하는 로드 밸런서로, HTTP 및 HTTPS 트래픽을 기반으로 요청을 분배

 

📝NLB

NLB는 OSI 모델의 4계층(네트워크 레이어)에서 동작하는 로드 밸런서로, TCP 및 UDP 트래픽을 기반으로 요청을 분배

 

 

 

 

 

 

반응형
반응형

📝조인

2개 이상의 테이블을 묶어서 하나의 결과 테이블을 만든 것을 의미합니다.

 

📝일대다 관계

한쪽 테이블에는 하나의 값만 존재하고 그 값과 대응되는 다른쪽 테이블의 값은 여러개인 관계를 말합니다.지역정보가 담긴 테이블의 이름은 기본키(PK) 한 개이고 동아리명이 담긴 테이블에는 이름(FK)가 다수이기 때문에 일대 다의 관계라고 이야기합니다.

    

 

 

 

 

대충 조인은 이런 교집합 합집합 차집합등의 관계를 생각하면 이해하기 쉽습니다.

파란색 영역의 부분만 데이터를 추출한다고 생각하시면 이해하기 쉬울 것입니다.

 

📝INNER JOIN (교집합)

DROP TABLE IF EXISTS REGION;

CREATE TABLE REGION(
	nm	varchar(20) PRIMARY KEY,
	region	varchar(20) NOT NULL
);

INSERT INTO REGION VALUES ('강호동', '경북');
INSERT INTO REGION VALUES ('김제동', '경남');
INSERT INTO REGION VALUES ('김용만', '서울');
INSERT INTO REGION VALUES ('이휘재', '경기');
INSERT INTO REGION VALUES ('박수홍', '경남');

DROP TABLE IF EXISTS USER;

CREATE TABLE USER(
	no			INT(20)		NOT NULL AUTO_INCREMENT	PRIMARY KEY,
   nm			varchar(20)	NOT NULL,
   club		varchar(20)	NOT NULL
);

INSERT INTO USER(nm, club) VALUES ('강호동', '바둑');
INSERT INTO USER(nm, club) VALUES ('강호동', '축구');
INSERT INTO USER(nm, club) VALUES ('김용만', '축구');
INSERT INTO USER(nm, club) VALUES ('이휘재', '축구');
INSERT INTO USER(nm, club) VALUES ('이휘재', '봉사');
INSERT INTO USER(nm, club) VALUES ('박수홍', '봉사');

 

위에 테이블을 쿼리문으로 구현했습니다.

 

SELECT A.no,
       A.nm,
       A.club,
       B.region
  FROM USER A
 INNER JOIN REGION B
    ON A.nm = B.nm;

INNER JOIN은 SELECT와 같이 쓰입니다.

 

  • SELECT 필드
  •     FROM 테이블(벤다이어그램의 왼쪽 서클)
  •    INNER JOIN 테이블(벤다이어그램의 오른쪽 서클)
  •         ON FK키 = PK키 (일대다의 관계는 PK키와 FK키로 연결)

 

이렇게되면 테이블A에 있는 필드와 테이블B에 있는 필드를 같이 볼 수 있게 해줍니다.

 

Alias를 필드에 안 주면 nm의 경우 USER 또는 REGION 테이블에 둘다 존재하기 때문에 어디를 봐야할지 SQL문 해석기가 이해를 못 해서 걸어줘합니다.

 

Document
no nm club region
1 강호동 바둑 경북
2 강호동 축구 경북
3 김용만 축구 서울
4 이휘재 축구 경기
5 이휘재 봉사 경기
6 박수홍 봉사 경남

 

DROP TABLE IF EXISTS REGION;

CREATE TABLE REGION(
	nm	varchar(20) PRIMARY KEY,
	region	varchar(20) NOT NULL
);

INSERT INTO REGION VALUES ('강호동', '경북');
INSERT INTO REGION VALUES ('김제동', '경남');
INSERT INTO REGION VALUES ('김용만', '서울');
INSERT INTO REGION VALUES ('이휘재', '경기');
INSERT INTO REGION VALUES ('박수홍', '경남');

DROP TABLE IF EXISTS USER;

CREATE TABLE USER(
	no			INT(20)		NOT NULL AUTO_INCREMENT	PRIMARY KEY,
   nm			varchar(20)	NOT NULL,
   club		varchar(20)	NOT NULL
);

INSERT INTO USER(nm, club) VALUES ('강호동', '바둑');
INSERT INTO USER(nm, club) VALUES ('강호동', '축구');
INSERT INTO USER(nm, club) VALUES ('김용만', '축구');
INSERT INTO USER(nm, club) VALUES ('이휘재', '축구');
INSERT INTO USER(nm, club) VALUES ('이휘재', '봉사');
INSERT INTO USER(nm, club) VALUES ('박수홍', '봉사');

DROP TABLE IF EXISTS CLUB;


CREATE TABLE CLUB(
	nm	   varchar(20)	PRIMARY KEY,
   room	varchar(20)	
);

INSERT INTO CLUB VALUES ('수영', '101호');
INSERT INTO CLUB VALUES ('바둑', '102호');
INSERT INTO CLUB VALUES ('축구', '103호');
INSERT INTO CLUB VALUES ('봉사', '104호');

 

 

3개의 테이블을 INNERJOIN 해보겠습니다.

 

CLUB을 추가시켰습니다. 도식화해서 표현하면 위의 그림입니다.

SELECT  A.nm
      , A.region
      , B.club
      , C.room
  FROM REGION A
 INNER JOIN USER B
    ON A.nm = B.nm
 INNER JOIN CLUB C
  	ON B.club = C.nm;

2개할 때랑 큰 차이는 없습니다. INNER JOIN후에 INNER JOIN절을 또 넣어주면 됩니다.

 

Document
nm region club room
강호동 경북 바둑 102호
강호동 경북 축구 103호
김용만 서울 축구 103호
이휘재 경기 축구 103호
이휘재 경기 봉사 104호
박수홍 경남 봉사 104호

 

📝LEFT JOIN

SELECT B.no,
       B.club,
       A.nm,
       A.region
  FROM REGION A
  LEFT JOIN USER B
    ON A.nm = B.nm;

 

조인 조건에 해당하지 않더라도 왼쪽 테이블의 모든 행을 출력합니다.

 

Document
no nm club region
1 강호동 바둑 경북
2 강호동 축구 경북
3 김용만 축구 서울
4 이휘재 축구 경기
5 이휘재 봉사 경기
6 박수홍 봉사 경남
NULL NULL 김제동 경남

 

📝RIGHT JOIN

SELECT A.no,
       A.nm,
       A.club,
       B.region
  FROM USER A
 RIGHT JOIN REGION B
    ON A.nm = B.nm;

조인 조건에 해당하지 않더라도 오른쪽 테이블의 모든 행을 출력합니다.

 

Document
no nm club region
1 강호동 바둑 경북
2 강호동 축구 경북
3 김용만 축구 서울
4 이휘재 축구 경기
5 이휘재 봉사 경기
6 박수홍 봉사 경남
NULL NULL NULL 경남

 

📝UNION (합집합)

SELECT A.nm FROM USER A
  UNION
SELECT B.nm FROM REGION B
  UNION
SELECT C.nm FROM CLUB C;

UNION의 경우 각 쿼리문의 결과를 합칩니다 (합칠 쿼리문의 출력 필드가 동일해야합니다)

 

Document
nm
강호동
김용만
이휘재
박수홍
김제동
바둑
봉사
수영
축구

 

반응형
반응형

📝MySql

MySQL은 오라클에서 제작한 DBMS 소프트웨어이며 오픈 소스로 제공됩니다.

누구나 무료로 다운로드하여 사용할 수 있고 소스를 제공하기 때문에 수정하여 개선한 소프트웨어를 만들 수도 있다

관련 소프트웨어 비고
MySQL Server 서버 프로그램
MySQL Client 클라이언트 프로그램
MySQL Workbench MySQL GUI툴
MySQL Database 샘플 데이터베이스
MySQL Notifier 서비스 알림 기능
Connector/ODBC ODBC 연결
Connector/ODBC  
MySQL for VIsual Studio Visual Studio 개발 지원
Connector/C++ C++ 연동
Connector/J Java 연동
Connector/NET .NET 연동
Connector/Python Python 연동
MySQL Connector/C C 연동
MySQL For Excel 1.3.5 엑셀 연동
MySQL Documentation 도움말 문서

이 표는 설치할 수 있는 것들입니다. 무조건 서버는 설치해야하고 다른 것들은 선택해서 설치할 수도 있습니다.

반응형
반응형

MySQL도 다시 다운 받아보고 삭제도 해보고 서비스에 등록도해보고 UTF-8설정도하고 PATH도 등록도해보고

별의별 거 다 해봤는데 방법은 간단했습니다. 

윈도우에 언어설정하는 곳으로가서 저 순서대로하고 UTF-8사용을 하면 에러가 이제 안 나옵니다.

반응형
반응형

📝쿠키

쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다

HTTP의 경우 데이터를 가져와서 유지시킬 수 없기 때문에 이걸 해결하기 위해서 도입되었다

 

📝쿠키 특징

쿠키는 서버의 자원을 전혀 사용하지 않으며 사용자 정보 파일을 브라우저에 저장합니다

속도는 쿠키가 세션보다 더 빠릅니다 → 서버랑 통신하는 것보다는 로컬에서 읽어오는게 일반적으로는 더 빠름

결제정보 등을 쿠키에 저장하였을때 쿠키가 유출되면 보안에 대한 문제점도 발생할 수 있습니다

 

📝쿠키 이용 방법

  • 팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크
  • 다크모드 / 라이트모드 유지

 

📝쿠키 동작 단계 (클라이언트)

 

JavaScript를 이용해 쿠키를 생성, 제거하거나 가져올 수 있다 서버에서 직접 데이터를 가져와서 활용하지 않는 경우에 사용하면 된다

 

📝쿠키 동작 단계 (서버)

Back End를 구축한 언어를 이용해 쿠키를 생성, 제거하거나 가져올 수 있다 비즈니스 로직에 쿠키를 넣는 행위가 포함되는 경우 사용된다 → 세션의 경우 생성시 자동적으로 쿠키를 생성 하긴 한다

이렇게 서버에서 만든 경우 HTTP Header에 붙어서 나가기 때문에 추가적인 대역폭을 사용하게 된다.

 


📝세션

세션은 쿠키 기반이지만 쿠키와 다르게 서버측에서 관리합니다

쿠키를 변경하는 보안적 이슈를 해결하기 위해 등장

 

📝세션 특징

서버에서 클라이언트를 구분하기 위해 세션 ID를 부여해 웹 브라우저 종료때까지 가지고 있습니다.

접속 시간을 제한을 두어 일정 시간 응답이 없다면 정보가 유지되지 않게 설정이 가능 합니다.

사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋다 사용자가 많아질수록 서버 메모리를 많이 차지하게 됩니다 → 즉 동접자 수가 많은 웹 사이트인 경우 서버에 과부하를 주게 되므로 성능 저하의 요인이 됩니다.

    

📝세션 동작 단계

  1. 클라이언트가 서버에 접속 시 세션 ID를 발급 받습니다 → 톰캣의 경우 JSESSIONID라는 이름으로 생성
  2. 클라이언트세션 ID에 대해 쿠키를 사용해서 저장하고 가지고 있습니다.
  3. 클라이언트는 서버에 요청할 때 쿠키의 세션 ID를  헤더에 담아 서버에 전달해서 사용합니다.
  4. 서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라언트 정보를 가져옵니다
  5. 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답합니다.
  6. 로그인 같이 보안상 중요한 작업을 수행할 때 사용

 

📝쿠키와 세션 사용 이유

쿠키와 세션을 사용하지 않으면 쇼핑몰에서 옷을 구매하려고 로그인을 했어도 페이지를 이동할 때 마다 계속 로그인을 해야 합니다.

 

📝세션 관리 방법

  • WAS에서 관리하는 Session 사용
    • WAS가 여러개일 경우 세션 클러스터링이 필요
  • DBMS에 Session 저장
    • 세션 클러스터링을 할 필요가 없음
  • Redis, Elastic cache등 메모리 DB에 Session 저장
    • 메모리DB에 세션을 저장, 가장 많이 사용하는 방식

📝Local Storage

쿠키의 많은 사용 방법은 Local Storage로 대체 되었습니다

  • 모든 HTTP 요청에서 데이터를 주고 받을 필요가 없어졌습니다 즉, 전체 트래픽과 낭비되는 대역폭을 줄일 수 있습니다 → 쿠키를 서버에서 생성할 시에 해당
  • 용량 또한 5MB의 정보를 저장할 수 있습니다.

서버에서 쿠키를 생성해서 보내는 경우도 거의 사용하지 않을 뿐더러 클라이언트에서 생성하는 쿠키는 더더욱 로컬 스토리지를 이용하자

 

 

📝JWT

Json Web Token의 약자로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다.

Token은 세가지로 나누어져 있다.

  • 헤더 (Header)
    • 어떠한 알고리즘으로 암호화 할 것인지, 어떤 토큰을 사용할지에 대한 정보가 들어있다.
  • 정보 (Payload)
    • 전달하려는 정보가 들어가있다 민감하지 않는 정보만 넣어야한다. 복호화가 가능하기 때문이다.
  • 서명 (Signature)
    • 헤더와 정보를 합친후 서버에서 지정한 secret key로 암호화 시켜 토큰을 암호화시킨다.
    • 검증 = 해싱암호화(base64(header) + . + base64(payload) , secret key)

 

JWT 장점

  1. 기존 세션 방식의 경우 서버가 여러개일 경우 서버의 세션을 클러스터링해서 사용해야 로드밸런싱으로 인한 강제 로그아웃이 안 되게 할 수 있는데 Secret Key만 공통적이면 검증하는데는 아무런 문제가 되지 않는다.
  2. 서버에서 관리를 안 하고 클라이언트가 관리를 하기 때문에 서버에서 세션 메모리에 들고 있을 필요가 없어서 부담이 줄어든다.

 

Acess Token

인증완료 후 주는 토큰으로 모든 API 통신은 해당 토큰으로 인증 및 인가를 받는다.

 

Refresh Token

Access Token을 발급해주는 토큰이다.

 

 

아래 사이트에서 JWT 테스트를 할 수 있으며 자세한 구현 방식에 대해서는 추후 포스팅에 올리겠습니다

 

https://jwt.io/

 

JWT.IO

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

jwt.io

 

 

 

반응형
반응형

📝Javadoc

코드를 작성하다 보면 유지보수, 배포 등 다양한 상황으로 인해 코드의 문서 작성이 필요한 경우가 있습니다.

하지만 작성한 코드의 클래스, 필드, 메서드에 대해 개발이 완료된 후 일일이 작성하는 것은 번거로울 뿐더러, 코드의 규모가 크다면 더 복잡한 일이 될 것입니다. 이를 지원하기 위해서 자바에서는 Javadoc을 사용하게 지원해줍니다.

즉, Java에서 지원하는 공식적인 주석 가이드입니다

   

📝Javadoc의 장점

표준에 맞춘 주석 작성으로, 구독자 간의 혼동을 최소화 할 수 있습니다.
코드에 문서를 포함시킬 수 있어 개발과 동시에 쉬운 문서화가 가능합니다.

 

위에 기본적인 javadoc에서 쓰이는 기본 규칙입니다.

 

@method  : 메소드명
@brief   : 함수 or 클래스 설명
@detail  : 함수 or 클래스 상세 설명
@author  : 작성자
@since   : 작성일자
@param   : 인자(매개변수)
@return  : 반환값
@why     : 만든 이유


/**
 * @method  : 
 * @brief   : 
 * @detail  : 
 * @param   : 
 * @return  : String
 * @why     : 
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 2022.05.06        SungJae Lee       최초 생성
*/

 

위에는 제가 따로 찾아서 정리한 저만의 규격입니다 → 요즘 트렌드는 어떤지 잘 모르겠네요 구닥다리 기술일 수도 있음

 

클래스나 매개변수가 없는 등 같은 경우는 인자값이나 매개변수 또는 반환값이 없으니 없는 건 안 적어도 상관없습니다.

 

📝Varchar vs Char  

  • Varchar
    • Varchar(20)인 경우 2글자 입력시 2byte 크기 만큼 가변적으로 적용되며 30글자 입력시 그만큼 늘어납니다
  • Char
    • Char(20)인 경우 2글자 입력시  20byte 크기 만큼 가지게 되며 30글자 입력시 에러가 발생하게 됩니다

 

📝IIS

윈도우 OS가 지원해주는 서버 개발 프로그램으로 이걸 이용해 서버를 만들거나 호스팅 할 수 있습니다 → ASP 스크립트 언어를 사용해 개발합니다

 

📝HTTP (80번포트)

HTTP 프로토콜로 도메인만 작성하고 포트번호를 따로 주지 않아도 웹브라우저에서는 HTTP 담당 포트인 80번으로 연결됩니다 → http://example.com/

 

📝HTTPS (443번포트)

HTTPS 프로토콜로 도메인만 작성하고 포트번호를 따로 주지 않아도 웹브라우저에서는 HTTPS 담당 포트인 443번으로 연결됩니다  https://example.com/

 

요즘에는 무조건 HTTPS를 권장하고 HTTPS를 안 쓰면 지원 안 해주는 것도 많습니다 그래서 따로 HTTP 서버를 안 열고 HTTPS로만 운용합니다 참고로 쇼핑몰같이 개인정보가 중요한 곳은 HTTPS로 운용안 하면 벌금을 무지막지하게 받습니다

반응형