빅데이터 분석 도구

넓은 의미: 빅데이터 처리를 목적으로 하는 소프트웨어

좁은 의미: 구체화 업무에 적용되는 통계분석, 시각화, 구조 분석등 기타 특정 분석을 위한 솔루션

 

등장 배경: 테라바이트급(TB) 이상의 대용량 데이터 처리를 위해

 

가치 사슬 측면 - 데이터 관리

방대한 양의 빅데이터 부하를 처리할 수 있는 소프트 아키텍처

하둡, 스파크 같은 오픈소스 시스템

데이터베이스 처리 시스템 등 미들웨어 군에 속하는 제품들이 해당

 

-분산 컴퓨팅

분산 시스템을 연구하는 컴퓨터 사이언스의 한 분야

CPU들을 네트워크로 상호간 연결

전체 작업의 할당 리소스를 분할해서 더 빠르게 처리하는 방식

 

-병렬 컴퓨팅

다수의 컴퓨터 디바이스로 하나 혹은 그 이상의 작업 할당

한번에 더 많은 연산 처리 가능

더욱 더 신속한 연산 처리 가능

 

-스토리지 관리

시스템의 리소스 및 하드웨어를 관리하는데 필요한 모든 프로세스

안정성 및 보안성을 확보하고 비용, 성능, 용량 사이 최적의 균형을 추구

 

-데이터 통합

서로 다른 소스에 있는 데이터를 데이터베이스 형태로 통합

빅데이터와 기존 데이터 간의 상호 공유가 필요해짐에 중요성이 대두

정형(테이블 형태) 및 비정형 데이터를 스키마(특히 실시간 데이터 처리에서 중요)에 따라서 처리

 

-데이터 분석

대용량 데이터 대상

통계분석, 검색, 마이닝, 시각화 솔루션 (R, SPSS, TABLEAU: 데이터 시각화 솔루션)

 

=통계분석

데이터 수집 후 적절한 통계 기법을 활용하여 의사결정을 내리는 과정

회귀 분석, 빈도 분석, 평균 분석, 연관 분석 등이 있음

=데이터 마이닝

데이터의 속성을 분석하여 가치 있는 정보를 추출하는 과정

EDA, 다변량 분석, 시계열 분석 등 방법론 존재

=데이터 시각화 : 부석 결솨를 시각적으로 표현하고 전달하는 프로세스

 

애플리케이션: 실제로 적용되는 산업이나 활동 분야, 구체화된 업무에서 활용할 수 있는 소프트웨어 (UI /UX)

 

빅데이터 분석 도구 가치 사슬 측면 정리

데이터 관리 분산 및 병렬 컴퓨팅 시스템, 스토리지 관리, 데이터 통합, SQL (관계형 데이터베이스)시스템과 같은 인프라 소프트웨어
데이터 분석 데이터 자체를 대상으로 하는 검색, 마이닝, 통계분석, 시각화 솔루션
애플리케이션 산업 또는 활동 영역에 적용되는 소프트웨어

 

코딩 VS 노코딩 분석 도구

코딩 분석 도구 노 코딩 분석 도구
프로그래밍 언어가 필요 필요X
언어 습득 난이도가 높아 진입 장벽이 높음 쉽고 간단히 분석 가능
수정 및 유지 보수가 간단하고 넓은 범용성을 지님 플랫폼 내에 귀속되어서 확정성이나 연결성이 떨어짐

 

Open source vs Closed source

Open source 분석 도구 Closed source 분석도구
소스 코드가 공개된 소프트웨어 소스 코드가 공개되지 않는 소프트웨어
누구나 자유로운 확인, 수정, 배포 가능 확인, 수정, 배포에 제한이 있음
파이어폭스, 안드로이드, 리눅스 등 존재 윈도우, 어도비, MS오피스 등 존재

 

 

빅데이터 분석 솔루션

분석 도구를 활용하여 제공하는 특정 문제에 대한 해결책을 의미

일반적으로 패키지 단위의 분석 솔루션을 지원하며, 비용이 높음

 

 

'빅데이터 분석' 카테고리의 다른 글

코딩 분석 도구  (0) 2023.07.23
노코딩 분석 도구  (0) 2023.07.23
해외 빅데이터 활용 사례  (0) 2023.07.23
국내 빅데이터 활용 사례  (0) 2023.07.23
빅데이터 분석 프로세스  (0) 2023.07.23

정치분야

버락 오바마 선거 캠프

보트 빌더 시스템

다양한 형태의 유권자 데이터베이스를 확보하여 이를 분석, 활용한 유권자 맞춤형 선거 전략 전개

기본 인적 사항으로 유권자를 분류하는 것을 넘어선 개념

유권자 성향까지 데이터를 수집

유권자 데이터베이스를 온라인으로 통합 관리하는 '보트 빌더' 시스템의 도움으로 유권자 성햐 분석, 미결정 유권자 선변, 유권자에 대한 예측 수행

설득이 가능한 층과 불가능한 층을 분류해 첫번째 집단을 우선공략

상대 후보의 지지층 가운데 지지의 강도가 약한 층을 설득

 

2014FIFA 월드컵

독일 국가대표팀 SAP 매치 인사이트

선수에게 센서, 축구공에도 센서 내장 사물 인터넷 (IoT) 연결

센서를 통해 데이터를 실시간으로 수집 및 분석

센서 1개가 만들어 내는 데이터는 1분에 총 1만 2천여개

데이터를 기반으로 포괄적인 분석 진행, 분석 결과는 감독과 코치들에게 실시간 전송

90분 경기 간 각 선수들은 432만 여개의 데이터를 생성 한팀에서 4968만 여개의 데이터를 생성

감독의 주관적 판단에 따라 전술이 결정됐던 것에 과학적 분석을 더할 경우 종합적 분석을 바탕으로 전량을 수립

세밀하게 분석, 예기치 못한 부상으로 전술을 유지하면서 선수를 교체해야 하는 경우에는 빅데이터 분석을 토대로 주전 선수와 움직임이 가장 유사한 선수로 교체

 

MLB(메이저 리그 베이스볼) 오클랜드 어슬레틱스

머니볼

경기 데이터를 철저하게 분석해 오직 데이터를 기반으로 적재적소에 선수들을 배치해 승률을 높인다는 게임 이름

저조한 구단 재정 상황에서도 최소 비용으로 최대 효과를 거둔 상황에서 유래

팀의 고액 연봉 선수를 트레이트하여 저평가된 저렴하고 출루율이 높은 선수를 영입

다섯 가지로 정의

1. 저평가 받는 출루율, 장타율 등의 통계를 중시

2. 가치가 지나치게 고평가 되어있는 것 과감히 배제

3. 유망주 지나치게 저평가, 좋은 유망주를 얻을 수 있으면 과감히 판매

4. 확실한 툴이 있으면 선수 영입

5. 잠재력 있는 고졸 선수의 가치가 고평가 되어 있기 때문에 상대적으로 잠재력은 낮아도 현재 능력이 좋은 대졸 선수를 드래프트

최하위에 그치던 팀을 4년 연속 포스트 시즌에 진출, 최초로 20연승

경영, 금융 분야에도 영향

 

자라(ZARA)

패스트 패션 시대에서의 빅데이터 활용

전 세계 매장에서 일일 판매량을 실시간으로 분석, 수요 예측하여 트렌디한 제품을 생산

스테디셀러의 공급을 늘리고 실적이 좋지 않으면 중단

즉각적 반응을 통해 생산량과 재고량 조절

어떤 옷이 피팅룸에 들어가는지 판매되는지 데이터 수집

초기 물량은 적게 가져가고 반응에 따라 신속하게 추가 생산을 하기 때문에 소진되지 않는 재고가 거의 없음

데이터를 통해 고객 파악, 분석 및 예측에 오류가 발생해도 빠르게 대응할 수 있는 시스템을 갖추었음

 

월마트

빅데이터 활용 수요 예측

빅데이터라는 단어가 등장하기 이전부터 빅데이터 분석을 활용

데이터 마이닝을 활용하여 제품추천을 제공하는 데 사용할 수 있는 패턴을 발견

기저귀와 맥주를 묶어 파는 기획 상품을 출시, 그 결과 매출이 폭증

이후 빅데이터 분석에 투자

지난 구매 이력이나 날씨 등 각종 데이터를 융합 및 분석 (요즘에는 시뮬레이션)

물량도 조절, 그 결과 물류 관리가 수월해 짐

허리케인이 닫칠 것이란 예보에 플래시와 맥주가 잘 팔릴 것이라 예측

과거 데이터에 기반을 두고 도출

전면에 맥주와 플래시를 배치한 결과 전 주의 같은 요일 대비 매출이 7배 상승

 

IBM

인공지능 의사 왓슨

의료분야에서 암환자 진료, 유전체 분석, 임상시험환자 매칭 등의 세가지 서비스를 제공

암관련 60만건의 의학적 근거, 300개 이상의 의학 학술지, 임상 실험 데이터로부터 1500만 페이지 분량의 자료를 학습

암환자의 데이터 기반으로 치료법 권고

치료법을 3단계로 권고, 각 치료법마다 근거 버튼을 삽입

왜 이러한 치료법을 권고하는지에 대해 학습했던 논문, 임상 연구 등의 결과 가이드라인 등의 근거 자료를 보여줌

(딥러닝으로 이유 찾기 어려움 ->explainable AI)

인간의 능력으로 따라가긱에는 불가능한 수준의 연구 결과들이 쏟아져 나옴

매일 같이 쏟아져 나오는 엄청난 분량의 암과 관련된 연구 논문들, 임상 시험 결과들을 환자의 치료에 빠르게 반영

 

아마존

고객 맞춤형 상품 제공

다양한 서비스를 제공

로딩 시간과 판매 사이의 상관관계 발견 (사용자 행동 분석)

페이지에 모든 정보가 0.6초 안에 보여질 수 있도록함

'빅데이터 분석' 카테고리의 다른 글

노코딩 분석 도구  (0) 2023.07.23
빅데이터 분석도구  (0) 2023.07.23
국내 빅데이터 활용 사례  (0) 2023.07.23
빅데이터 분석 프로세스  (0) 2023.07.23
빅데이터 분석 소개  (0) 2023.07.01

신한은행- 코드나인

고객의 성별, 연령, 소득, 지역 등을 뛰어넘어 고객의 소비 퍁컨과 트렌드의 흐름 분석, 비슷한 소비 패턴을 공유하는 집단을 남/여 각각 9개 그룹으로 분류한 고객 중심의 상품개발 체계

소비패턴 분석을 통해 남/ 여 각각 9개의 트렌드 코드를 보다 세분화해 업종을 재분류

고객의 최신 요구를 반영하고자 하는 마이크로 트렌드 산출

과거 이용 패턴으로 파악하기 힘든 것들을 SNS나 언론 기사 및 소비 트렌드 발표 자료 등을 통해 신속히 수집

요구가 높은 코드를 분석하여 신상품, 서비스 개발시 최대한 반영

 

엔씨소프트 - 게임 데이터 센터

국내 유일하게 자체 게임 데이터 센터 운영

원시 데이터 수집부터 의미 있는 정보로 시각화하기까지의 프로세스 책임

게임 개발과 비즈니스 영역을 접목해 데이터를 기반으로 신속하고 정확한 의사결정을 내릴 수 있도록 지원

게임에 최적화된 대용량 데이터 처리 기술과 관련 연구개발 능력 보유

게임 내 발생하는 로그와 데이터를 수집, 적재 및 가공

처리한 데이터로 통계리포트

게임 주요 지표와 게임 서비스 전체 현황에 대한 정보가 담김

위험에 대한 신속한 대응과 관리를 가능하게하는 모니터링 서비스 제공

부정행위탐지, 광고 마케팅 효과 분석, 웹에 올라오는 덱스트 데이터를 이용한 고객 동향 분석 등 게임에 관련된 형상을 모델링하고 이를 데이터 서비스로 개발

플레이 기록에 따라 유저가 다양한 보상을 얻을 수 있는 아이템: 다량의 분석을 통해 유저에게 아이템 제공

게임속 데이터를 분석해 가치 있는 정보를 도출해 게임 운영 및 신규 컨텐츠 개발에 활용

 

삼성화재 - 보험사기 탐지 시스템(IFDS)

빅데이터를 활용하여 보험사기를 적발

IFDS는 방대한 데이터를 활용하여 사기 고위험군을 자동으로 추출

가입자의 정보 및 사고경위 등 사고 관련 데이터를 수집 및 분석

허위 신고 판명

 

창원시 - NC 다이노스 야구장 입지 선덩

2014년 당시 새 야구장 입지 선정

1순위: 창원종합운동장

2순위: 마산종합운동잔

3순위: 진해 옛 육군 대학 터

일반적인 시각으로 창원종합운동장이 접근성이 가장 유리한 것으로 알려졌지만, 선정된 곳은 2순위였던 마산 종합 운동장

빅데이터 활용

공공데이터와 민간 데이터자료를 융복합 및 분석

세 후보지의 시간 거리 내 주거 인구와 직장인구(유동인구)를 추출

마산종합운동장: 41만, 18만

창원종함운동잔: 6만, 1만

기존 1순위였던 창원종합운동장과의 차이가 심함

 

국민 건강알람 서비스 - 의료, 보건 분야에서의 빅데이터 활용

소셜 미디어 정보를 융합하여 주요 질병의 위험도 동향을 제공

주요 질병의 발생을 예측하고 알람을 제공

지역별 5가지의 발생 위험 정보를 지도 형태로 시각화

시군구 단위로 당일 또는 2일 후까지의 질병 발생 위험 정보도 알려줌

위험정보 4단계로 구분

각 단계별 질병 예방을 위한 행동 요령과 수칙을 제공

진료 동향, 대기 오염, 기상 정보 등도 안내

 

국토 교통부 - 교통 혼잡지도

도로의 혼잡상태를 GIS 지도상에 표출

전국 단위의 도로 혼잡 수준을 한 눈에 파악할 수 있는 지오

국내 최초로 교통 빅데이터 분석, 처리 기술을 이용한 교통 혼잡지도 개발

네비게이션 이용 차량의 이동궤적을 도로 구간에 분석

지도상에 특정 기간의 혼잡 강도를 파악할 수 있음

혼집강도: 해당 도로 구간을 이용한 전체 차량의 총 통행시간 대비 혼잡속도 이하로 주행한 차량의 총 통행시간의 비율

네비게이션 이동궤적이라는 빅데이터와 전국단위의 교통 네트워크 분석을 실현

세가지로 구성

빅 데이터베이스 시스템, 교통 혼잡 분석시스템, GIS기반 표출 시스템

교통망 성능을 평가할 수 있는 지표로 활용

정책효과를 적기에 파악

지속가능한 교통정책 수립에도 활용

 

롯데백화점 - VOC(Voice of customer) 데이터 랩

고객 컴플레인을 정형화 시키는 인공지능 분석 시스템

고객의 소리에 축적된 데이터를 유의미한 형태로 변환

비정형 텍스트 데이터를 정제해(워드 클라우드) 경영에 활용하는 것은 백화점 중 처음

시각화를 통해 데이터를 직관화

위험어 감지와 신규 불만 접수 알림기능을 탑재해 업무 활용도를 높임

기존 VOC 시스템은 고객 분류를 수작업에 의존

관리자의 주관이 개입될 여지 존재

수십만 개의 컴플레인이 VOC 데이터 랩을 통해 비즈니스 가치가 있는 데이터로 재탄생

충복 접수된 고객 불만은 실새간 겁색어 순위처럼 표현

고객 불만글의 핵심과 의도를 자동으로 파악, 글에서 나타나는 여러 의미를 통계적으로 분석

현장 업무 개선에 팔요한 메시지를 추출하는 것이 핵심

데이터 분석 프로세스 5단계: 문제 정의 > 데이터 수집 > 데이터 전처리 > 데이터 모델링 > 시각화 및 결론 도출

 

문제 정의 : 가장 중요한 부분

분석하고자 하는 분야 이해 

해결해야 하는 문제를 객관적이고 구체적으로 명시

프로젝트 설계에서 문제 정의가 제대로 선행되지 않으면 최종 단계에서 큰 문제가 발생할 수 있음

 

데이터 수집

분석에 필요한 데이터 조건을 정의

데이터 소재를 파악하고 확보하는 작업

-크롤링 : 뉴스, 블로그, 소셜 네트워크, 카페 등 인터넷 상에 존재하는 웹 문서의 데이터 수집, 상업적 사용시 저작권 문제

현재에는 공개된 데이터가 많아서 중요도가 떨어짐

- Open API : 공급운영주체가 데이터와 정보를 제공하기 위해 개발자와 사용자에게 오픈하는 것, 공개 API

- Log Aggregator: 다양한 로그 데이터를 수집하는 오픈 소스 기술, 기업에서 주로 사용

- RDB Aggregator: 관계형 데이터베이스(테이블 간 관계를 표현한 데이터)에서 정형 데이터를 수집해 하둡이나 NoSQL에 저장하는 오픈 소스 기술.

 

데이터 전처리

수집한 데이터에 존재하는 결측치나 누락된 값 등을 수정 및 보완

결측치 대체 및 이상치 유뮤 확인, 제거를 하는 데이터 클리닝 (데이터 정리, 데이터 모델링에 따라 전처리 방법이 차이가 난다.)

분산되어 있는 데이터를 일관성 있는 형태로 변환하는 데이터 통합

적은 양으로도 전체 데이터 집합을 얻는 과정인 데이터 축소

그외 다양한 데이터 전처리 방법이 존재

 

데이터 모델링

데이터를 활용해 비즈니스에 맞는 모델을 만들어 내는 단계

통계 기반, 데이터마이닝 기반, 머신러닝, 딥러닝 등 다양한 방법론이 존재

 

통계 분석 모델링

응용수학의 기법을 이용해 데이터로부터 수치상의 성질, 구칙성 또는 불규칙성을 발견함

특정 모집단에서 구한 표본을 가지고 그 모집단의 특징 및 가능성 등을 추론해내는 추론 통계가 존개

측정이나 실험에서 수집한 자료의 정리, 표현, 예약, 해석 등을 통해 자료의 특징을 규명하는 기술 통계가 존재

 

데이터마이닝 모델링

마이닝 적용 기법 설명
Association(연관성) 데이터 간 연관성 발견
Sequence(연속성) 순서에 따른 이력을 분석해 이후의 가능성 예측 ex) 시점에 따라 매출액 분석(독립 변수, 종속 변수)
Classification(분류) 수집된 데이터의 패턴 및 속성으로 결합해 예측, 연속된 수치를 예측(회귀예측), 분리된 수치 예측(분류 예측)
Clustering(군집화) 특징 및 속성의 유사성으로 데이터 군집

머신러닝 모델링

머신러닝: 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구

데이터 마이닝과 도메인이 교차되는 경우가 있음

머신 러닝을 예측에 초점, 데이터 마이닝은 탐색적 분석에 초점

지도 학습(예측 대상 존재), 자율 학습, 준지도 학습, 강화 학습(ex) 알파고), 비지도 학습의 유형 존재

 

딥러닝 모델링

딥러닝(머신러닝 중 하나): 인공신경망에서 발전한 형태로, 은닉층(더 복잡한)이 2개 이상인 분석 알고리즘

딥러닝으로 훈련된 시스텡의 이미지 인식 능력은 이미 인간을 능가함

구글의 알파고는 바둑의 기초를 배워 강화학습을 통해 스스로 학습함

 

시각화 및 탐색(전 단계에서 사용)

데이터의 전반적 특성을 파악하기 위해 활용

다양한 유형의 데이터를 시각화할 수 있음

문제를 해결하기 위한 결론 도출

1854년 브로드 스트리트의 콜레라 사례: 모두 같은 우물을 식수로 사용했다는 것을 시각화를 통해 발견

크림 전쟁 군인 사망률: 나이팅게일은 데이터 시각화를 통해 높은 군인 사망률의 원인은 전쟁이 아닌 열악한 병원 상태라는 것을 밝혀냄 충분한 예방이 가능하다는 인사이트를 얻음

 

문제정의: 신제품의 초기 불량 발견을 위해 필요한 생산대수 및 주행거리를 측정하는 데 불필요하게 긴 시간 소모

데이터 수집: 자동차 부품에 센서를 탑재해 주행 시 발생하는 차량 데이터를 수집

데이터 전처리: 축적된 오류 데이터를 감시하고 진단하여 문제가 생겼던 코드는 따로 분류 및 분석

데이터 모델링: 수집된 운행 정보, 운전자의 운전 습관 등을 분석해 불량 탐지와 소비자 보상 규모의 정확한 측정에 활용

시각화 및 결론 도출: 데이터 분석 및 시각화 결과를 활용하여 인사이트 도출 

 

문제정의: 빅데이터 분석 도입 이전에는 공정상 불량 원인 분석에 다수의 숙련된 기술자가 필요

데이터 수집: 각 설비마다 발생하는 온도, 생산량 등의 로그 데이터 수집

데이터 전처리: 수집된 로그 데이터를 분석하기 위해 시계열 데이터 변환, 데이터 프레임 구조화 등 처리 작업

데이터 모델링: 전처리된 로그 데이터를 활용하여 공정 상황 모니터링 및 이상 탐지 시스템 구출

시각화 및 결론 도출: 데이터 분석 결과를 시각화하여 실시간으로 각 공정의 정상 작동 여부 파악이 가능해짐, 인력이 1명으로 축소

 

 

경로 설정

.jsp라서 servletExample까지는 필요x

"subject/subjectSearchSuccess.jsp"

servlet을 불러올때 프로젝트명부터

"/servletExample/subjectDelete"


MVC 패턴: 모델, 뷰, 컨트롤러 구분 작업 분리, 결합도를 최소화, 유지보수 높이고, 개발자들이 각각 맡은 영역에만 집중할 수 있게 해서 개발의 효율성을 극대화할 수 있는 장점이 있다. 사용자의 입력을 받아서, 처리를 하고 결과를 다시 사용자에게 표시하기 위한 최적화된 설계

 

: 클라이언트와 서버 간의 인터페이스 역할을 하는 영역, 화면 구성을 담당 (HTML, CSS, JSP를 사용하여 구현)

컨트롤러: 뷰와 모델을 연결하는 중계 역할, 클라이언트가 전달한 파라미터를 추출하여 모델로 전달, 처리 결과 페이지를 보여준다.  (JSP, 서블릿 사용)

1. 뷰에서 들어온 요청을 받는다.

2. 클라이언트가 전달한 파라미터 추출

3. 파라미터의 유효성 검사, 실패하면 다시 뷰

4. 서비스 객체의 메서드 호출, 파라미터를 서비스 객체로 전달

5. 출력 뷰 페이지로 이동

 

모델: 서비스와 데이터베이스 처리를 담당하는 역할, 각 로직처리, DB 질의 처리기능, 서비스 처리 담당 Service (or Business) 객체, 데이터베이스 처리 담당하는 DAO 객체 (평범한 자바: Plain Old Java Object(POJO))

DAO: 데이터베이스 처리에 관한 기능만으로 구성

 

DTO(Data Tranfer Object, Domain Object DO, Value Object  VO): 데이터를 다른 logic에게 전송 및 반환할 때 효율적으로 데이터를 사용할 수 있게 클래스 작성. 

 

프런트 컨트롤러 디자인 패턴(front controller) : 대표 컨트롤러를 두고 뷰에서 들어오는 모든 요청을 담당하게 하면 웹 애플리케이션을 실행하는 모든 요청 일괄적 처리

 

프런트 컨트롤러 설정

1. 클라이언트의 서비스 요청 시 요청되는 URL 패턴의 규칙 지정

2. 지정된 URL의 패턴과 프론트 컨트롤러 연결

 

URL 패턴: 실제 서블릿의 매핑 정보 (서블릿 매핑 시 사용되는 가상의 이름), /슬래시로 시작 서블릿 매핑이름으로 사용되는 URL 패턴의 종류는 정확히 이름까지 일치하는지, 디렉토리까지만 일치하는지, 확장자만 일치하는지에 따라 세가지로 나누어짐.

 

URL 패턴 지정: '~.do', '~.action'과 같은 단어가 공통으로 들어가게 URL을 지정

FrontController 패턴을 적용한 서블릿에서 고려해야 되는 사항: 사용자가 어떤 동작을 요청했는지 식별. 사용자가 서블릿에 요청할 때, 서블릿이 사용자의 요청을 식별할 수 있도록 지원

http: //IP번호:포트번호/context명/식별값

 

서브 컨트롤러: 프런트 컨트롤러 다음에 실제 서비스를 처리하는 컨트롤러. (로직은 서브에서 처리)

 

Command 패턴: 클라이언트의 각 요청을 처리하는 별도 클래스를 제공하는 구현 패턴. 하나의 명령어를 하나의 클래스가 처리하도록 설계

 

3계층 아키텍처

프레젠테이션 계층, 비즈니스 계층, 영속 계층

클래스 기능
DispatcherServlet 유일한 서블릿 클래스, 모든 클라이언트의 요청을 가장먼저 처리하는 Front Controller
HandlerMapping 클라이언트의 요청을 처리할 Controller 매핑
Controller 실질적인 클라이언트 요청을 처리  //자바(인터페이스) 추상메서드 선언
ViewResolver Controller가 리턴한 View 이름으로 실행될 JSP 경로 완성

 

다형성

구현=> 슈퍼클래스 참조변수 = new 서브클래스1()

                                               = new 서브클래스2()

       => 인터페이스 참조변수 = new 구현클래스1()

                                               = new 구현 클래스2()

 

DispatcherServlet -> controller -> service ->DAO -> DB

 

① 클라이언트가 메뉴에서 게시판 메뉴를 클릭하면 /getBoardList.do를 요청하면 DispatcherServlet이 요청을 받는다.

② DispatcherServlet은 HandlerMapping 객체를 통해 게시판 목록 요청을 처리할 GetBoardListController 를 검색하고

③ 검색된 GetBoardListController의 execute() 메서드를 호출하면 게시판 목록을 보여주기 위한 로직이 처리된다.

④ 로직 처리 후에 이동할 화면 정보를 리턴하면

⑤ DispatcherServlet은 ViewResolver를 통해 접두사와 접미사가 붙은 JSP 파일의 이름과 경로를 리턴받는다.

⑥ 그리고 최종적으로 JSP를 실행하고 실행 결과가 브라우저에 응답된다.

 

Connection 객체란?

자바에서 DB와 연결하기 위해 사용하는 객체입니다.

파라미터는 Data의 위치(URL), 기타 정보(DB 접속 ID, 패스워드, 포트 번호)

DriveManager의 getCOnnection()메소드를 호출하여 생성할 수 있습니다.

 

(1) createStatement()

SQL문을 DB에 전달하기 위한 Statement 객체를 생성한다.

 

(2) preparedStatement(String sql)

파라미터가 포함된 SQL문을 DB에 전달하기 위한 preparedStatement 객체를 생성한다.

(3) prepareCall(String sql)

DB의 Stored Procedure를 호출하기 위해 CallableStatement객체를 생성한다.

(4) close()

현재 커넥션 객체에 할당된 시스템 리소스를 즉시 반환한다.

필터로 구현할 수 있는 기능에 대한 목록

서블릿이 호출되기 전에 서블릿 요청을 가로채는 기능

서블릿이 호출되기 전에 서블릿 요청 내용을 점검하는 기능

 

필터: 브라우저에서 서블릿에 요청하거나 응답할 때 미리 요청이나 응답과 관련해 여러가지 작업을 처리하는 기능

 

'JSP' 카테고리의 다른 글

상태정보 유지  (0) 2023.08.01
EL, JSTL  (0) 2023.07.14
JSP  (0) 2023.07.03

EL에서 객체에 접근

${<표현1>.<표현2>} 형식 사용

처리과정

  • <표현1>을 <값1>로 변환
  • <값1>이 null이면 null을 리턴
  • <값1>이 null이 아닐 경우 <표현2>를 <값2>로 변환(<값2>가 null이면 null을 리턴)
  • <값1>이 Map, List, 배열인 경우
  • <값1>이 다른 객체이면

표현언어의 주요 기능

기존 표현식보다 편리하게 값을 출력

JSP의 4가지 기본 객체가 제공하는 영역의 속성 사용

집합 객체에 대한 접근 방법 제공

수치 연산, 관계 연산, 논리 연산자 제공

자바 클래스 메서드 호출 기능 제공

표현 언어만의 기본 객체 제공

스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용

 

관련있는 태그들끼리 묶어놓은 단위: 태그 라이브러리

액션태그는 JSP에서 XML유형의 태그 사용, 특별한 동작 기능 수행

액션태그와 커스텀 태그 모두 XML 태그이므로 시작태그, 종료태그 있어야함. 속성 값을 지정, 값에는 반드시 큰따옴표, 작은 따옴표 붙여야함.

같은 태그 이름의 충돌을 피하기 위해 prefix(태그 라이브러리) 사용해야함.

 

JSTL; 필요한 기능들을 모아 놓은 표준 커스텀 태그(사용자 정의 태그)

-자바에서 커스텀 태그 기능을 이용하여 활용 빈도가 높은 태그를 개발, 발표한 것이 자바 표준 라이브러리. JSTL은 표준 커스텀 태그

 

JSTL이 제공하는 분류

Core(c): 변수지원, 제어흐름, URL 관리, 출력,예외 처리

XML(x): XML코어, 흐름제어, XML변환

Internationalization(fmt):지역화, 메시지포맷, 숫자 및 날짜 포맷

Database(sql): SQL

Functions(fn): 집합체 길이, 문자열 처리

 

taglib 지시자: JSP 페이지에서 커스텀 태그의 한 종류인 JSTL태그를 사용하려면 taglib 지시자 사용 필요

<c:set...>: set은 지정된 범위로 평가 값을 변수에 저장

 

var, target 동시 설정 x

-변수값 설정

<c:if...>

<c:choose>: 자바의 switch와 같이 태그 choose는 여러 개의 내부 태그 when 의 속성 test를 만족하면 그 몸체를 처리하는 태그이다.

<c:forEach>

URL 관리 태그: 외부/내부 페이지를 현재 위치에 삽입

<c:import>: 동일한 웹 어플리케이션뿐만 아니라 외부의 다른 자원을 읽어와 포함시킬 수 있도록 해준다.

 

'JSP' 카테고리의 다른 글

상태정보 유지  (0) 2023.08.01
MVC 패턴  (0) 2023.07.17
JSP  (0) 2023.07.03

ResultSet: 특정 SQL 문장을 처리한 결과를 담고 있는 영역

rs ResultSet 타입

 

웹 구조: 웹 브라우저가 있는 클라이언트가 자료를 요청(request), 서버는 요청에 응답(response)

웹 서버는 HTTP를 사용하여 클라이언트에 응답

여러명의 사용자가 동일한 페이지를 요청하여 같은 애플리케이션 프로그램을 처리할 때 1 개의 프로세스만을 할당하고, 사용자의 요청을 쓰레드(Thread) 방식으로 처리

메모리 사용량 및 프로세스 관리 부하 감소로 전체적인 처리량 높음

 

서블릿(servlet): 순수하게 자바를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램

자바 프로그램에 표현 부분인HTML코드를 모두 포함해야 하므로 로직 처리와 디자인 처리를 분리하기 어려움

 

JSP(JavaServer Pages): HTML 태그 내에 자바 소스코드를 삽입하고 컴파일 시켜 서블릿으로 변환하는 방식, 태그를 사용해 자바 객체를 사용 <%%>안에 자바, 플랫폼에 독립적인 기술 방식,웹 서버에 독립적

 

웹 애플리케이션: 웹을 기반으로 실행되는 프로그램

 

웹 애플리케이션 구성요소

웹 브라우저: 클라이언트, 사용자의 작업 창

웹 서버: 웹 브라우저의 요청을 받아들임

웹 애플리케이션 서버(WAS): 요청된 페이지의 로직 및 데이터베이스와의 연동을 처리

데이터베이스: 데이터의 저장소

 

웹 서버에서 JSP를 실행시키려면 자바 모듈을 이해하는 엔진인 자바엔진(JSP 컨테이너: 하나의 서블릿 프로그램으로 변환) 필요

 

JSON(Javascript Object Notation): 텍스트 기반의 데이터 교환형식 의미, 구문형식은 javascript를 따르지만 언어로부터 완전히 독립적=>서로 다른 프로그래밍 언어간에 데이터 교환을 위해 가장 널리 사용, 공식적인 인터넷 미디어 타입:application/json이며 파일 확장자는 .json

JavaScript에서 하나의 객체 안에 함수와 변수를 함께 그룹화하여 포함시키기 위한 문법의 형태로서 json표기법 사용

 

아파치와 같은 웹서버를 사용한다면 JSP 엔진을 따로 설치 해야 하지만, 톰캣 같은 경우는 톰캣 자체에 웹서버와 JSP엔진이 함께 있으므로 한 번의 설치로 JSP를 운영

자바 확장자 JAR

'JSP' 카테고리의 다른 글

상태정보 유지  (0) 2023.08.01
MVC 패턴  (0) 2023.07.17
EL, JSTL  (0) 2023.07.14
  • 빅데이터의 역사 및 진화과정을 기술할 수 있다.
  • 빅데이터의 발전 동력에 대해서 기술할 수 있다.
  • 빅데이터의 다양한 특징을 기술할 수 있다.

 

빅데이터 : 거대한 데이터의 모음

 

데이터 센터

1940년대 : 에니악(ENIAC)이라는 거대한 데이터 센터에 뿌리를 둠.

1997년 ~ 2000년대 닷컴 버블: IT 회사들이 투자 받았던 자본을 데이터 센터에 투자

 

빅데이터 기술의 진화 과정

2005년: 페이스북, 유튜브의 등장으로 엄청난 양의 데이터가 생성

=>하둡, 스파크와 같은 빅데이터 처리를 위한 오픈 소스 프레임워크가 개발되면서 생성되는 데이터의 양이 크게 증가

클라우드, IoT, 머신러닝 기술의 등장으로 빅데이터의 가능성이 더욱 확장

구글 코랩: 파이썬을 웹상에서 사용(클라우딩 컴퓨터 소스 사용 가능)

 

2008년: 전 세계 서버가 매일 처리하는 데이터의 양은 9.57억 기가바이트

구글 회장 에릭 슈미트

"인류의 문명 이래 2003년까지 생성된 데이터가 2010년에는 불과 2일 만에 수집되고 있다."

2014년에는 PC보다 모바일 기기에서 네트워크 접속이 더 많아짐

 

IT(인포메이션 테크놀로지) ->DT(데이터 테크놀로지)

알리바바 그룹 전회장 마윈 : "세상은 지금 IT시대에서 DT시대로 가고 있다."

 

빅데이터 직무 관련 키워드

데이터 엔지니어(Data Engineer): 빅데이터 기반 전처리, DB 구축 및 관리, 예측, 최적화 등 작업 수행, 코드 작업 많이, 기존 알고리즘 활용

데이터 분석가(Data Analyst): 빅데이터 분석, 처리 및 요약, 정보 가공 및 의사 결정에 유용하게 활용될 수 있는 보고서 작성, 문서 작업 많이

데이터  과학자(Data Scientist): 예측 모델 설계, 데이터 탐구 및 분석, 새로운 알고리즘 및 모델 창안

 

발전 동력: 통실기술의 발달, 저장매체의 발달, 컴퓨팅 능력의 발달

 

빅데이터의 특징 - Volume

이전과는 비교도 되지 않는, 큰 규모의 데이터

트위터에서는 하루 평균 1억건의 데이터가 생성되며, 유튜브의 하루 평균 동영상 재생 건수는 40억 회를 넘음

수집, 저장되는 데이터의 규모가 테라, 페타, 엑사를 넘어 제타바이트 시대에 도달

 

디지털 정보단위

KB, MB, GB, TB, PB(페타), EB(엑사), ZB(제타), YB(요타)

 

전세계 클라우드에 발생되는 데이터 트래픽의 크기 단위가 제타바이트

 

빅데이터의 특징 - Variety

SNS의 발전으로 텍스트, 오디오, 비디오, 위치 정보 등 다양한 형식의 데이터가 발생

한 가지에 국한되지 않고 여러 형식을 가지는 것이 빅데이터의 특성

특히 기존의 정형 데이터의 틀을 넘어서 많은 종류의 비정형 데이터가 존재

 

정형 데이터 : 고정된 필드에 테이블 형태로 저장되는 데이터, 관계형 데이터베이스, 스프레드시트, 엑셀, CSV파일 등

로우의 개수가 데이터의 개수

 

비정형 데이터: 미리 정의된 방식으로 구조화되지 않은 데이터, 일반적으로 텍스트나 이미지 형태

=> 비정형 데이터를 정형화해서 정형데이터로

 

빅데이터의 특징 - Velocity

빅데이터 시대에 데이터는 실시간으로 생성되고 저장됨

빅데이터 기술은 대용량 데이터의 빠른 처리 - 분석이 가능해야 함

 

빅데이터의 특징 - Veracity (금융쪽에서 중요)

앞의 3V에 이어 정확성이 새로운 빅데이터의 특징으로 소개됨

데이터의 성질에 따라서 부정확한 데이터가 DB에 구축될 수 있으므로 최대한 오류를 줄여야 함.

 

빅데이터의 특징 - Value

기업에서의 빅데이터는 비즈니스적으로 융용하게 활용되어야 의미가 있음

가치 설계가 제대로 이루어지지 않으면 빅데이터의 유용성이 낮아짐

 

+ Recent posts