-
뉴딜 일자리 사업 2일차교육/뉴딜 일자리 사업 2021. 5. 2. 21:18
1. Oracle
- 유료
- '97~ '98년도부터 본격적으로 사용(Oracle7) - Oracle 7이 세상에 나온 건 1992년
- 오픈소스인 MySQL이 등장 -> 오라클의 경쟁으로 부상 -> 오라클이 MySQL 인수
- 서버회사로 출발한 sun의 Java 또한 인수
- 유료버전 배포
- 무료버전 업데이트 매우 느림
- 독점하려는 모습에 다른 DB의 사용량이 상승
- MariaDB
- MongoDB
- 인기가 떨어진 가장 큰 문제
- 프로젝트, 회사 규모에 따른 유연한 가격정책 (최소 단위 1억)
- AS 가격 비약적 인상
- 이후 MySQL로 데이터를 이관해달라는 요청이 많아짐
ANSI SQL
각기 다른 sql문을 미국 표준 협회에서 표준화 시킴
특징
- 쿼리문이 DBMS의 제약을 받지 않는다.
- 테이블 간의 Join관계가 FROM에서 명시된다.
- 참고 블로그 ----> ANSI SQL이란?<----
SQL (Structured Query Language)
+ 10번 에서 추가 설명.
2. 솔루션 / SI / 서비스 / 플랫폼
솔루션
- 생존경쟁이 기본으로 깔려있기 때문에 보이지 않는 벽이 꽤 두터운 편이나 내부는 프로젝트도 같이하고 그렇기 때문에 꽤 돈독하다고 한다.
- 프로젝트 기간이 짧은 편 -> 영업팀이 조율하는 편이 많은 것 같다.
- 처음부터 입사하는 것은 추천하지 않음.
- 한정적 기술 스택
- 빅데이터의 솔루션 추천
- 기반기술 개발팀 + 솔루션 SI팀 (SI팀이 기반기술을 다른 곳에 설치해주러 감)
SI
- 팀으로 나뉨
- 프로젝트 자체에 참여를 하는 근무 방식
- 스킬업과 사람들을 만나보며 솔루션을 가기 위한 발판을 만드는 걸 추천함.
서비스
- 대표적인 서비스 → PG(Payment Gateway) 전자결제
- 최소 인력으로 운영
- 네이버 페이 카카오페이 등은 PG사가 아니고 플랫폼 안에서 PG를 이용하기 위한 기능이다.
- PG사의 예로는 토스 페이먼츠, KG이니시스가 있다.
- 국가사업으로는 LMS(Learn Management System)
- 유지보수 필요 없이 시스템상 서비스를 제공하는 것
- 스킬업이 안된다. 운영만 하기 때문에 길어야 1년 ~ 2년 정도 지내는 걸 추천
플랫폼
- 갈 수 있다면 강추 (배민, 야놀자, 요기요, 직방 등)
- 기술 스택이 높은 것들이 많다.
- 다만 스킬업을 하고 나서 접근하는 게 좋을 것 같다.
3. 4차 산업
AI / Big data / IOT
- 아직은 황무지라 생각하심
- Python - R
- Java도 가능함 (Scala -> Hadoop)
- tensorFlow - tensorFlow.js
- Vue.js처럼 대중화가 된다면 AI 분야가 가속화될 것
- 스킬업을 하면서 계속 주시해야 할 분야 기회가 되면 잡는 것이 좋다고 생각함.
4. Vue.js
그동안 jQuery로 화면 구성을 해왔다.
이후 아래와 같은 프레임워크들이 나오기 시작
- Node.js
- Angular.js
- React
- Vue.js
- Nuxt.js
- ---> Vue.js VS Nuxt.js <----
- 5월 초까지 팀장님이 공유한 Vue.js 강의 듣기
5. Cross Browsing
- 브라우저 종류
- NetScape
- FireFox
- Opera
- IE
- Chrome
HTML5가 나오면서 태그 표준화가 되었다. 이전에는 서로 호환이 안 되는 태그들이 있었고 호환성이 들쭉날쭉 이었다.
HTML5가 나오게 된 결정적인 이유는 태블릿과 스마트폰이 상용화되면서부터이다.
반응형 웹
- 해결책 각 기기에 맞춰 페이지를 따로 개발
- 네이버나 다음이 아래와 같은 방법을 취하지 않는 이유는 너무나 복잡한 구조 때문에 CSS로 해결이 되지 않기 때문이다.
- CSS3가 기기를 판단하고 레이아웃을 자동으로 맞춰준다.
- 개발 입장에서 좋은 선택
6. Protocol, HTTP, TCP/IP
Protocol
- 통신 규약
- 보내고 받는 것을 해석하여 처리하는 것
HTTP
- HyperText Transfer Protocol
- Request
- userAgent에서 기기와 브라우저를 구분
- Response
- 상태 코드값을 넘긴다(ex. 200, 404, 500....)
- body에는 HTML과 JavaScript 뿐이다.
- JS는 인라인 컴파일러이기 때문에 웹에 용이하다.
- 그때그때 컴파일한다.
- Connectionless - 서버에 연결하고, 요청 후 응답을 받으면 연결을 끊는다.
- 장점: 불특정 다수를 대상으로 하는 서비스에 적합
- 단점: 클라이언트의 이전 상태를 알 수 없음. (stateless), 예를 들어 과거에 로그인을 성공했더라도 로그 정보를 유지할 수 없다. => cookie를 이용해서 이 문제를 해결
- HTTP는 전송 프로토콜이고 URI(Uniform Resource Identifiers)는 자원의 위치를 알려주기 위한 프로토콜이다.
- HTTP 개념 설명 블로그
- http 통신 구조
- http 상태 코드
- 자주 쓰이는 응답 코드
200 - OK
, 서버가 요청을 제대로 처리함.301 - Moved Permanently
, 해당 URI가 다른 주소로 바뀌었을 때.400 - Bad Request
, request에 포함된 보내는 데이터가 잘못 보내어졌을 때.401 - Unauthorized
, 유저가 해당 요청을 진행하려면 로그인을 필요하다는 것을 나타내는 코드.403 - Forbidden
, 서버가 요청을 거부 (권한이 없기 때문), 예를 들어 구독자만 볼 수 있는 데이터 요청했을 때.404 - Not Found
, 요청한 자원(uri)이 서버에 존재하지 않음.505 - Internal Server Error
, 서버에서 에러가 났을 때 사용되는 코드.
웹 실행 순서는 웹 서버에서 전달받은 html과 js 중에 html을 먼저 화면에 뿌리고 나서 js를 한 줄씩 실행하고 화면에 뿌려준다.
Keep-alive
- Keep-alive 설정을 하면, 지정된 시간 동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.
HTTP Request 구조
- 참고 블로그
- 크게 3 부분으로 구성 Start Line / Headers / Body
- Start Line
- 예시)
GET /search HTTP/1.1
GET
: HTTP Method에 해당 /request
가 의도한action
을 정의하는 파트- HTTP Methods:
GET
,POST
,PUT
,DELETE
,OPTIONS
등이 있다.
- HTTP Methods:
/search
: Request target- 해당 request가 전송되는 목표 uri
HTTP/1.1
: HTTP Version
- 예시)
- Headers
- request에 대한 추가 정보를 담고 있는 부분
Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Content-Type: application/json Content-Length: 257 Host: google.com User-Agent: HTTPie/0.9.3
- 자주 사용되는 Header 정보
- Host: 요청이 전송되는 target의 host url
- User-Agent: 요청을 보내는 클라이언트에 대한 정보
- Accept: 해당 요청이 받을 수 있는 응답(response) 타입
- Connection:
keep-alive
로 설정하면 한 번에 하나씩 요청/응답이 아닌 불러올 파일들을 모두 한 번에 받을 수 있다. - Content-Type: 요청이 보내는 메시지 body의 타입.
- Content-Length: 메시지 body의 길이
- Body
- 클라이언트 요청(request)의 실제 내용
POST /payment-sync HTTP/1.1 Accept: application/json Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 83 Content-Type: application/json Host: intropython.com User-Agent: HTTPie/0.9.3 { "imp_uid": "imp_1234567890", "merchant_uid": "order_id_8237352", "status": "paid" }
- Start Line
TCP/IP
- TCP/IP에 대한 설명 블로그 - 카카오 기획자
- TCP/IP 는 패킷 통신 방식의 인터넷 프로토콜인 IP (인터넷 프로토콜)와 전송 조절 프로토콜인 TCP (전송 제어 프로토콜)로 이루어져 있다.
- TCP는 IP 위에서 동작하는 프로토콜로 데이터의 전달을 보증하고 보낸 순서대로 받게 해 준다.
- FTP ( File Transfer Protocol ) 킹 무 위키
7. WebServer & WAS
TA(Technical Architect)
보통 규모가 있는 프로젝트인 경우 TA의 직군이 있다.
각 파일을 전달받아 부하 방지 및 공격에 대비하기 위한 구조를 꾸린다.
하드웨어 및 네트워크 아키텍처를 설계한다.
+11번에서 추가로 설명
WebServer
- 주소창에서 요청을 보내면 가장 먼저 웹서버로 들어간다.
- JSP를 받는다.
Apache. Nginx와 같은 것들이 WebServer이다.
WAS(Web Application Server)
아래와 같은 것들을 포함한다.
- Controller
- Service
- Dao
- SQL
Apache Tomcat, JEUS와 같은 것들이 WAS이다.
Signal Flow
1. Browser(Request)
- 서버에 요청
2. WebServer
- 요청받은 주소를 중계, 해석 후 WAS에 해석한 요청(주소)을 넘김
3. WAS
- 요청받은 것을 처리한다 (아래를 포함)
- Java Class File
- Xml
- Controller
- Service
- Dao
- SQL
- 결과를 가공하기 위해서 조회된 데이터(JSP)를 WebServer로 제공
4. WebServer(Response)
- 넘어온 데이터를 반복문을 통해 html, js로 가공 후 Browser로 보냄
- 자바에선 jsp만 받는다.
5. Browser
- 받은 파일 중 html을 먼저 화면에 뿌려준 뒤 js를 한 줄씩 컴파일한다.
- ---> WebServer와 WAS의 차이 <----
그럼 두 가지가 꼭 필요한 이유?
- 정적 콘텐츠 동적 콘텐츠에 따라 서버의 대응을 구분하여 부하를 줄일 수 있다.
- 웹서버는 정적 콘텐츠 WAS는 정적 콘텐츠를 담당한다.
- WAS가 없었다면 사용자의 요청을 모두 미리 만들어 놔야 한다.
- 요청이 많아지게 되면 자원이 절대적으로 부족하다.
- 각자의 역할이 분명하기 때문에 효율성이 좋다.
- 물리적으로 떨어져 있기 때문에 보안이 강화됨.
- 빠른 응답이 가능
8. DNS Server
도메인 이름과 IP 주소를 서로 변환하는 역할을 한다
9. GateWay
내부(사설) 아이피들이 외부(공인)로 나갈 때 쓰는 IP를 gateway라고 한다.
10. ANSI SQL
예제 1)
유저 타입이 C 인 메뉴명, 메뉴 ID
select mm.MNU_ID , mm.MNU_NM from tn_usr_mnu_atrt ma left outer join tm_mnu_mst mm on ma.MNU_ID = mm.MNU_ID where ma.user_type = 'C';
예제 2)
dbserver 사용자가 사용할 수 있는 메뉴명
select ll.MNU_ID , ll.MNU_NM from tb_userinfo ui left outer join ( select mm.MNU_ID , mm.MNU_NM, ma.user_type from tm_mnu_mst mm inner join tn_usr_mnu_atrt ma on ma.MNU_ID = mm.MNU_ID ) ll on ll.user_type = ui.user_Type where ui.loginId = 'dbserver'
11. AA와 TA의 역할
728x90반응형LIST'교육 > 뉴딜 일자리 사업' 카테고리의 다른 글
뉴딜 일자리 사업 4일차 (0) 2021.05.02 뉴딜 일자리 사업 3일차 (0) 2021.05.02 뉴딜 일자리 사업 1일차 (0) 2021.05.02 뉴딜 일자리 사업 2차 면접 (0) 2021.04.22 뉴딜 일자리 사업 1차면접 (0) 2021.04.14