[KELLY CHOI 켈리최 동기부여 모닝콜 36~40] 2022.06.22
[1028 암기법, 독서법] 2022.06.20
[1028 책] 4. 역행자 by 자청 2022년 2022.06.08
[스파르타코딩클럽 할인쿠폰] 5만원 링크 2022.06.06
[강동구 둔촌동역, 목요일] 라온필하모닉합창단(아마추어, 혼성합창단) 모집 2022.06.06
[1028 책] 3. 파리에서 도시락을 파는 여자 by 캘리최 2005년 2022.06.06
[1028 책] 2. 웰씽킹- 캘리최 2021년 2022.06.06
[1028 책] 1. 맥스웰 몰츠 성공의 법칙 : Psycho Cybernetics(사이코 사이버네틱스) 1960년 2022.05.26
[1028 JPA ] 2022.05.25
i/f 란? 2022.05.16
[KELLY CHOI 켈리최 동기부여 모닝콜 1~35] 2022.05.03
[1028 SQL] 2022.04.01
[1028web Excel collection] Excel for SQL generation 2022.03.23
[1028web JSTL ]커스텀 라이브러리 2022.03.19
[1028web http 상태코드] 400에러 발생 2022.03.12
[1028 bootstrap부트스트랩 모음 반응형 숨김(grid), 버튼, 텍스트 설정, 테이블 2022.03.05
VelocityEngine 2022.02.19
[법륜] 오정심관(五停心觀) 2022.01.17
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩 2021.12.16
[1028 aws] Awsome Day 20210930 2021.09.30
[1028 from 자료구조 by 정광식, 강태원 ] 자료구조_이론 2021.09.08
[1028 from 클라우드컴퓨팅 by정재화] 02. 클라우드 컴퓨팅 서비스 2021.09.05
[1028 from 클라우드컴퓨팅 by정재화] 01. 클라우드 컴퓨팅의 이해 2021.08.30
[1028web annotation] 어노테이션 2021.08.29
[1028 암호화] 대칭키, 공개키, ssl 2021.08.16
[1028 데이터베이스] 데이터베이스 기본 작성중 2021.08.16
[1028web vm virtualbox] 네트워크 2021.07.18
[1028web vm virtualbox] ssh-server 설치 2021.07.18
[1028web linux]초간단 apache 웹페이지 만들 2021.07.18
[1028web SIDR] SIDR 계산 2021.07.12
728x90

하기 내용은 캘리최 동기부여 모닝콜 내용을 정리한 것입니다. 

https://www.youtube.com/channel/UCZmPiZdqohchy4y1NWKdYZg

 

https://www.youtube.com/channel/UCZmPiZdqohchy4y1NWKdYZg

 

www.youtube.com

정보를 접하고 사람을 만날 때 기억해야 할 3가지 | # 36 | 다니엘 골먼 Daniel Goleman
https://youtu.be/gErI94h66jI
36 일. 사람에게 온전히 집중할 것
"사람에게 온전히 집중할 것"
구글 스칼라. .. 유용하게 쓰고 있는 것이 주의를 방해
하버트 사이먼 : 정보가 관심을 소모시킨다. 

교감의 구성요소
: 상호관심, 
: 비언어적 동조 : Oscillator : 
: 좋은 기분

휴먼 모멘트 by 하버드 비지니스 리뷰
: 눈 앞에 있는 사람에게 온전히 관심을 가질것. 

나는 몰입을 통해 매일 더 발전합니다. 
 
우리가 학벌과 직업에 집착하는 이유ㅣ#37ㅣ애론 도티 Aaron Doughty
https://youtu.be/7SpvFp9FH1Y
37 일. 내려놓음(Letting go) 본연의 모습으로

사람(Person), 스펙(Label), 결과(Outcome), 신념(believe), 정체성(Identity)에 내면의 행복을 결정하지 않는다.

결과를 내려놓으면 더 강하게 끓어 당기는 에너지를 갖게 된다.
집착(컨트롤) 한다는 건 결핍의 에너지 

행복은 의식 상태.
현재 집중하고 과정 자체를 이해할 때. 

내려 놓음은 쉽지만 스스로 결정하기 쉽지 않다. 
내려놓으면 삶이 쉬워질 것이다. 
내려놓으면 실현 될 것이다. 

나는 학벌, 직업, 인맥 등의 외적 가치보다 나의 본연의 모습 그대로를 더욱 가치있게 바라봅니다. 
 
팀 페리스는 스페셜리스트와 제너럴리스트를 이 관점으로 접근합니다ㅣ#38ㅣ팀 페리스 Tim Ferriss
https://youtu.be/j8pfl22VcAo

38 일. 특화된 제너럴리스트가 되어 소수의 기술 조함

일반적으로 사용하지 않는 기술을 조합 by 스콧 애담스 

1. 희소성이 있는 두가지를 조합한다면?
소득 상위 10%가 될 가능성 높아짐. 
르네상스 캐피탈 by 워렌버핏. 
카네기 스피킹 코스 : 화법, 글쓰기 실력. 
당장 경쟁 우위를 주는 기술 : 대중연설, 글쓰기, 협상능력 

2. 실패하더라도 이기는 방법
>> 기술과 관계에 초점을 두고 선택
The 4-Hour SHEF 에는 실패했지만 타이탄의 도구들 를 썼음
핵심재료 : 관계, 좋은 사람들, 기술, 잘팔리는 기술

3. 선순환의 복리 효과 
커리어 의사결정
: 모든 것을 다 배우려고 하거나 올인하는 것은 바람직하지 않다. 
아주 특화된 사람이라면 스페셜리스트가 되어도 된다. 

나는 말과 글로 소통하는 능력을 꾸준히 발전시켜 부의 추월차선에 올라탑니다. 

팀페리스 
타이탄의 도구들
http://www.yes24.com/Product/Goods/37533966
The 4-Hour SHEF
https://www.amazon.com/4-Hour-Chef-Cooking-Learning-Anything/dp/0547884591
 
다른 사람을 통해서가 아닌 ‘나’ 스스로 행복해지는 방법 | #39 | 미셸 오바마 Michelle Obama
https://youtu.be/ccb1nRBTK9k

39 일. WALK YOUR WALK! DO YOUR WORK! : 너만의 길을 가. 너의 일을 해 

심리치료 : 말을 들어줄 객관적인 사람이 필요하다. 
나의 행복은 내 책임. 아무도 내게 행복을 줄 수 없다.   

각자의 하이킹 방법이 있다. 
비교는 즐기지 못하게 한다. 

당신의 몸에 감사하는 것은? 
1. 모두 내 것 이라는 것.
2. 매일 매일 일하는 건강한 몸이라는 것. : 판단하지 않기 
 
책 세계 투어 영향?
내 머리 속의 각본을 바꾸는 것은 나 자신. 
나의 비커밍은 사람들의 의미와 목적을 갖을 수 있도록 하는 일

나는 있는 그대로의 나 자신을 사랑합니다. 

비커밍
http://www.yes24.com/Product/Goods/66581518
 
미래 사회 모든 분야에서 적용될 ‘이것’을 알려 드립니다 | # 40 | 게리비 GaryVee
https://youtu.be/t9qF7jDhAvA

40 일. 큰 순간에 있다는 것을 감사하고 인내하라, 일해서 얻어라. 
지금 당장 이 변화를 받아들이는 것. 
지금 같은 순간에 있다는 것은 운이 좋은것. 

NFT :  소셜미디어, Web2.0 이후 가장 큰 소비자 변화
본능, 비즈니스 경험 행동주의자적 근거  확신으로 인한 관심

1. 큰 순간에 있다는 것에 감사하고 인내하라
지금 변화를 받아들여라 골드러쉬(새로운 금광)다. 

2. 대담하게(audacious) 굴지마라.  일해서 얻어라. 

나는 새로운 트랜드를 올바르게 이해하고 적용하는 혁신적인 사람입니다. 

https://www.garyvaynerchuk.com/
12 1/2 부와 성공을 이루는 12가지 법칙
http://www.yes24.com/Product/Goods/107092661
 
현재 경제 상황이 만족스럽지 않은 분은 들어보세요 | #41 | 패트릭 벳 데이비드 Patrick Bet-David

https://youtu.be/-X1mn7GWKWU
머니게임 공략법
돈의 20가지 법칙. 

돈의 20가지 법칙. 
https://www.patrickbetdavid.com/the-20-rules-of-money/

#1: It's a Game
돈은 게임이다. 
: 규칙과 방식을 학습
#2:Don't Be a Hater of Money
: 돈을 싫어하지 말아라. 
#3: It's a Doubles Game
:  돈은 복리 게임
위험자산, 장기투자
#4: Seduction : 세덕션: 유혹
돈을 유혹하라. : 집착x
#5: Timing
 속도와, 삭감
#6: Boredom : 따분함
돈은 지루한 것을 싫어한다. 
당신을 위해 돈이 일해야한다.
#7: Secret Account
비밀 계좌 : 위기대응위한
#8: Don't Fly First Class
일등석에 타지마라. 
천만달러(130억)
#9: Compensation Plan
보상계획 
사업에 세금공제 혜택이 있는이유
구실(taxes)
보상계획에 맞춰 위치해라. 
#10:EndOfTheWorldMentality
세상이 망해도 정신
시기를 관리: 기회다.
#11: Study Your Politicians
정치인(특히 대통령)을 연구해라
그의 철학에 따라 사업을 조정
#12: Study Smart Investors
현명한 투자자를 연구해라
사고, 사고방식
#13: Play Your Game.Don't Compare
당신의 게임을 할것.비교 금지
#14: Index
지수를 이기려고 하지말고. 
내 목적과 데드라인을 이겨라 
#15: Befriend Money Makers
돈벌이와 친구되기
어울리는 사람, 같이 일하는 사람, 생활 수준, 행동, 규율. 
#16: Diversification is for Sissies
다각화는 남을 위한것. 
말년에 한다면 좋겠지만 원하는 곳을 가기에는 좋지않다. 
#17: Leverage 영향력,지랫대
레버리지는 성장 게임
더 많은 지원 받기 
확장 
자신을 더 마케팅
고객에게 더 빨리 다가가세요
비즈니스 성장의 속도를 높이기
#18: Positioning
위치잡기
신용, 수입, 저금, 투자
#19: Strategic Partnerships
전략적 파트너쉽 
같이 수익을 올리기위한 파트너쉽
#20: Big Check Syndrome
큰 금액 증후군. 
작은 고정수입의 중요성. 

저서 : 파이브 팩터 
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=280846302


최근 주식투자에 두번째 실패했구나. 내가 잘못했내 하면서 공부를 안했다는 것을 자각했는데. 워렌버핏이야기를 들어보니 완전히 잘못된 투자를 하고 있었다. 

공부를 안하고 주식투자를 하는것은 카지노에 돈을 건거랑 같구나 싶었다. 

내가 잘못한 것이었다. 내 책임이다. 

책을 잘 읽어야 겠다. 
     
     
     
     

Seduction  : (성적인)유혹

se-  : 제쳐두고, 멀리 

ducere :  이끌다.  

728x90
https://youtu.be/3ka5OIAurvE
기억은 연결의 시각화
1. 연결 : 두개 이상의 정보.
2. 시각화 : 장면 떠올리기 , 상호작용하면 좋음
ex) 우산과 커피  > 커피가 쏟아지는데 우산으로 막음, 물소리

+ 기억과 감정
기억의 중추 : 해마. 
감정의 중추 : 편도체 
>> 두개가 물리적으로 가까움, 서로자극

+ 얼굴과 이름
얼굴에 나만의 논리를 추가함.
도윤 -> 윤도원(아는사람) +인터뷰

+ 연도 역사
최소한으로 힌트가 주어지면 인출가능
1090년 나침반 > 90으로 구공탄디자인의 나침반 생각. 
1776년 미국독립선언 > 일치한다. +체육 +미국독립>  쌍둥이가 체육복입고 미국국기 들고 뛴다. 
1251년 팔만대장경 > 경찰 + 오일 +팔만대장경> 경찰관이 오일을 팔만대장경에 바름
** 각가자의 정답은 다름
- '기적의 암기법' 저자 정계원 (1부)
http://www.yes24.com/Product/Goods/89604615
https://youtu.be/1G9UGpxQa5Q

+ 영어암기
1. 어원사전찾기 : 10개중 8개는 암기에 도움은안되지만찾아라

Perjury 위증죄 > per 멀리있다(away),  jury 맹세하다. 
                        > 뻘소리 
vogue :  보고보고 자꾸 보이네 : 유행
Repose : 휴식 : re 뒤로, pose 포즈. : 뒤로 둔다. 휴식. 

+ 위험한 암기법 
깜지.>  내 생각이 1이라도 들어가야 한다
노래는. 내가 알고 있는 노래라도 있음.
기억한다, 떠올린다.                    
etymonline.com

외울 것을 어떻게 외울까요? 퀴즈쇼처럼. 

- '기적의 암기법' 저자 정계원 (2부)
http://www.yes24.com/Product/Goods/89604615
https://youtu.be/g2cF1p1QBIA

조직화 암기법. 
1. 비슷한 것끼리 뭉처주기
>> 이미지화 , 배치, 색상

2. 아웃풋 테스트
떠오르는지 테스트 

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/-Ve04CzLD1Y
1. 기출문제집 구입, 해답보기, 기본서 정하기
> 합격 수기 많이 나온 책
2. 기출문제 해설을 기본서에 표시 공부할 부분, 안해도될 부분 구별,
패턴 분석
목표 점수를 설정할것 . 강사는 빠짐없이 200점 목표로 가르침
70~75점 목표면. 기출문제부분만 확인하면됨. 
3. 해설과 기본서 내용을 비교하며 기본서 내용 이해. 
4. 기본서 해설이 완전히 이해 된 후에 문제 풀이 시작. 
쟁점별로 답이 되는 지문이 무엇인지 체크
패턴화. 
5. 회독법 : 공부 마무리 단계 : 2번 정도 추천

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/y4fyL8vAdbs

직관적 암기법
위치, 색상
첫번째 보라, 최상위 개념
  두번째 파랑, 상위 개념, 숫자.  주요 문자 빨강 줄치기
   세번째 초록

>> 형광펜으로 폴더화 
>> 쌓기 쉬운정보부터 입력, 위치 이미지 화 

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/m1eieNzRZrg
세부내용 암기법, 객관식 풀이 비법
기출 폴더로 나눠서 예측. 
기출에 단서화 : 기본서에 문제 해설에 없는 것 추가. 

카테고리화 "/" : 준비 3/정복1/ 정비4   묶어놓고 위에 씀. 

수메르
> 문자 ,문서 ,도서관  | 우르크, 우르남무|도량형 학교 백과사전, 법전   붉은 색 형광팬. 

아는 문자가 많이 나오면 먼저 푸세요. 
답을 찾는과정 & 푸는 과정. 

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/a5rrZLW7TrY

복습 타이밍
1. 내가 공부한것을 모두 머리에 넣을수 없다. 
선정된것만 넣는다. 
밑줄, 형광펜 
2. 복습타이밍은 해당챕터 공부 끝난 후 10~15분. 
3.자기 전에 책상에 앉아 하루종일 공부한것 전체 훌터보기

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/Vrs0pLJdDnQ

장기기억 노하우
단기기억 RAM
장기기억 HDD, SDD
1. 눈으로 책을 읽을때
2. 뇌로 책을 읽을떄

방법1. 질문
책의 저자와 대화를 하듯이 읽기 : 질문 노트: 10분복습
목차-상관관계 

방법2. 탐색
단기기억-탐색-> 장기기억
7번읽기: 3~4번은  미리 지식을 쌓고 3~4번은 질문

방법3. 재구축
익숙하지 않은것을 익숙하게 코딩하는것. 
그룹화(원칙vs예외, 목차)

나는 무조건 합격하는 공부만 한다 이윤규 변호사
http://www.yes24.com/Product/Goods/84807166
https://youtu.be/7aR7yStng0A

독서법
시작하는 독서법

작심삼일
: 사람의지 평균 유통기한 3일
의지
: 나의 특성에 맞지 않는 것을 해보려는 시도
: 시작은 의지가 필요하나 이어나가는 것은 의지가 안들게
쉽게 성공하거나 어렵게 실패하거나
1. 읽기 쉬운책, 흥미가 가는책
: 고르는 것에 진심이어야, 만만하게 읽을수 있는 책
: 필요도 독자의 의지를 필요로하게함. 
2. 독서 갯수를 꽉채워서 빌릴것
: 첫 30페이지만 읽기 >> 30페이지만 읽는걸 넘어가는 책을발견>> 완독 1권. 

피해야 할 것: 효과에 목매지 말것. 

독서의 효과
1. 자아강화 효과 
: 생각 특성, 정서 변화 : 책은 얼어붙은 내면의 바다를 깨는 도끼여야 한다. 
: 내가 흥미로운 책
2. 언어 능력 : 사고력
: 작가의 생각의 체계를 독자의 머리로 재생. 
: 독서현상 : 처음은 뻑뻑 생각의 주파수가 달라서. 싱크가 맞으면 시간가는줄모름. 
: 세시간 독서 = 세시간 동안 생각 
: 효용은 읽기 쉬운책 흥미있는책이 높음. 
: 지식책은 언어능력 향상효과 없음, 이야기책은 높음. 

100% 흡수하는 독서법
1. 정독 
: 소리내 읽는 정도, 속독은 안됨. 
: 언어능력이 떨어지면 소설책 4권읽기. ex) 초등 고학년 동화
2. 나라면 어땠을까 생각하기 : 사고력향상
: 인물이 그장면 외에 했던 사소한 행동, 정체성을 보고 고민
: 독서란 작가의 사고를 내 사고로 만드는 행위
3. 작가의 의도 읽기
: 3권 책당 1가지 작가의 의도를 읽어내면 구조를 읽게됨(독법)

다독
: 많이 읽어라 그러나 많은 책을 읽지는 마라.- 벤자민프랭클린
: 다독을 하면 속독을 하게되서 사고를 막는 단점도 있음. 
: 30분 읽다가 여러번 읽는 것이 베스트
: 독서를 낚시처럼

독서의 최고 효과
: 한달에 한번이라도 강도가 센책을 만나면 다른사람이 되는 듯한 효과가 나온다.

공부머리 독서법 최승필
http://www.yes24.com/Product/Goods/59993940
https://youtu.be/jA5M98MYbvw
단순화, 정형화 , 시각화

단순화 : 내가 기억해야할 최소화
21개의 원소 5개 케이스로 나눔. 
=> 5개만 조져라. ㅋㅋㅋㅋ

정형화: 정해진 형식변화
양이온 > 밝은 모습 > 연예인. 
1가 유재석, 2가 정형돈 , 3가 하하
음이온 > 부정적 > 나쁜놈
1다 히틀러, 2가 이토히로부미

시각화
유는님 + 숫소, 리듬체조, 라면  H, Li, Na
정형돈 + 돈
하하 + 알루미늄 음박지 둘러맴

https://youtu.be/L6XXwOP9KAA

집중 : 가운데로 모은다. 

1. "재미" : 공부를 재미있게 만들자. 
- 분량을 기준으로 계획세우기. 
- 뚜렷한 목표: 세부적인(2~3시간소요) 목표 수립

2. "환경 만들기"
방해대상 제거 : 1시간 ~2시간 놀면 충분하다 > 3시간 놀기. 

공부는 내가 행복해지는 자격. 누구나 할수있다. 
   
   
   
728x90

http://www.yes24.com/Product/Goods/109705390

 

역행자 - YES24

“절대 읽지 마라! 죽을 때까지 순리자로 살고 싶다면!” 오타쿠 흙수저에서 월 1억 자동 수익을 실현한 무자본 연쇄창업마,라이프해커 자청의 인생 역주행 공식 대공개!★★★★★출간 즉시 베

www.yes24.com

 

1. 자의식대로 살아간다. 
2. 남이 성공했다고 하는 방식을 그대로 따라한다. 
3. 뇌 최적화를 소홀히 한다. 아니 무시한다. 
4. 간절히 믿으면 우주가 도와준다 따위의 자기최면만 강화할 뿐 효과있는 실천을 하지 않는다. 
5. 책에 정답이 있다는 걸, 즉 책이 곧 공략집이라는 걸 알지못한다. 

 

1. 기본 근력을 다진다. 
2. 축구 기술을 15가지로 나누고 이를 매일 연습한다. 
3. 실제 축쿠경기를 뛰면서 자신의 훈련법이 맞는지 확인한다.(실행) 반복적으로 패배하면서 한계를 확인한다(메타인지)
4. 1번으로 돌아간다 이를 몇년 반복하면 실력이 지속적으로 향상된다. 

 

역행자의 7단계 모델

1. 자의식 해체

: 인간 자아가 붕괴되는 것을 막는 기제지만 발전을 가로막는다. 해야할일을 안하는 것으로 합리화, 무시 

: 스스로 못남을 인정하고 어떻게 발전할 수 있는지를 고민

: 1단계 탐색(불쾌한 느낌 인식) 2단계 인정(질투라 인정, 객관적으로보기) 3단계 전환(열등감 해소, 행동으로 연결)

2. 정체성 만들기

: 책을 통한 간접최면, 환경설계(나를 궁지로 몰아넣기), 집단무의식(집단에 들어가면 해당하는 것을 배울수 있다.)

3. 유전자 오작동

: 잘못된 본능, 클루지 바이러스

: 심리적 오류,  사람들이 저지르는 온갖 잘못과 결례를 잘 참아낼 수 있었다. = 저 사람은 클루지에 좀 심하게 감염되셨네

: 진화의 목적은 완벽함이 아니라 생존이다.

: 평판에 대한 오류, 새로운 경험에 대한 오류, 손실 회피 성향,  cf) 휴리스틱

: 인간의 뇌는 추상적인단어를 싫어한다, 움직이고 싶다면 구체적인 상황으로 감정을 건드려야 한다. 

4. 뇌 자동화

: 1단계 22전략 :  2년간, 매일 2시간씩 책을 읽고 글을 쓰는것. ex) 그렇게 말하는 이유는무엇이며 어떻게 실천할수있을까

: 2단계 오목이론 : 장기적인 수를 둘것. 

: 3단계 뇌자극 : 안쓰던 뇌 자극, 안가본길 걷기, 충분한 수면

5. 역행자의 지식

 : 기버이론 _ 역행자는 1을 받으면 2를 준다. 

 : 확률게임_ 역행자는 확률에만 베팅한다.  : 손실회피가 아닌 확률게임으로

 : 타이탄의 도구_ 유전자에 각인된 장인정신을 역행하라 : 3~4개의 얕은 기술 

 : 메타인지 _ 주관적인 판단은 순리자들의 전유물 : 더닝-크루거 효과(이미 안다 착각하거나 해도안되 )> 독서, 실행력

 : 실행력레벨과 관성 

6. 경제적 자유를 얻는 구체적 루트

: 상대를 편하게 해주기, 상대를 행복하게 해주기

: 수많은 병사를 보유하자

: 정체성변화, 20권의 법칙, 유튜브시청, 글쓰기를 통한 초사고 세팅(ex) 경제적 자유를 위한 5가지 공부법으로 생각적기)

온라인을 넘어 오프라인 학습으로

7. 역행자의 쳇바퀴

: 새로운 도전, 고의로 패배에 직면하기 = 레벨업 순간이 왔구나.

 

추천책 : 

클루지(생각의 오류), 뇌, 욕망의 비밀을 풀다(지배욕, 자극욕, 안정욕). 

정리하는 뇌(효율적으로 쓰기)

 

부자의 그릇, 인스타브레인, 장사의신

나는 돈이 없어도 사업을한다, 나는 4시간만 일한다, 당신은 사업가입니까, 당신의 뇌는 최적화를 원한다. 더 시스템, 러쉬, 미치지 않고서야 부의 추월차선, 스틱, 언스크립트, 오래된 연장통, 최강의 인생

뇌, 욕망의 비밀을 푼다, 생각에관한 생각, 욕망의 진화, 정리하는 뇌, 지능의 역설, 클루지

 


자청님의 숙제. 

경제적 자유를 위한 5가지 공부법. 

1. 독서를 한다.

: 1주일 2권 책읽기를 한다. 그리고 그것에 대한 요약본을 블로그에 쓴다. 그리고 그와 관련된 글을 써본다.  

그리고 책 내용이 기억이 안날때 쯤 다시 그 요약본을 본다.  

2. 자기모니터링... 운동하기와 명상 

: 자기 모니터링.  지금까지 나의 모든실패는 나를 우선순위로 두지 않았기 때문이었다. 일을 우선으로 나의 감정을 배제하거나, 이미 떨어진 체력을 갖고 전력투구 했었다. 

: 매일 저녁 자기모니터링을 하고(명상), 매일 아침 기본 유산소 운동과 그외 일주일에 3일정도 근력운동을 한다. 

3. 실행한다. 

: 진짜 돈을 벌기위한 시도를한다. 2주에 1번씩. 반드시 산출물 만들기. 

4. 실패한다. 

: 내탓은, 실패는 성장이다. 

5. 성공한다. 

: 계속 경제적 자유를 습득하고 자유위에서 또다른 자유를 습든한다. 

 

맥락이 맞는지는 모르겠지만. 여튼 써봤다. 

캘리님 만나고 책읽기를 시작했는데. 수익활동이 진짜 급하게 빠르게 달성해야할 과제가 되었다. 

6월부터는 반드시 수익이 들어오도록 만들겠다. 

728x90

spartacodingclub.kr/?f_name=%EC%8B%A0%EB%AF%B8%EC%84%B1&f_uid=60023a49f2c25df74e333946

 

 

스파르타코딩클럽

5주 완성! 코딩을 전혀 모르는 비개발자 대상의 웹개발 강의

spartacodingclub.kr

 

#스파르타코딩클럽 할인쿠폰

#스파르타코딩클럽

#스파르타

#스파르타코딩클럽 할인

#스파르타 코딩클럽 가입쿠폰

728x90

라온필하모닉합창단 모집합니다. 라온필하모닉합창단은 아마추어와 프로가 함께하는 아마추어 합창단, 혼성 합창단 입니다.

라온필하모닉 합창단은 아마추어 합창단으로 롯데 콘서트홀, 예술의 전당 등(홈페이지 지난 공연확인)에서 진행된 많은 공연 경험을 갖고 있습니다. 아마추어 합창단, 취미합창단, 직장인 합창단 활동을 원하시는 분들께 추천 드립니다. 무대 경험이 필요한 모든분께 추천드립니다. 

2022년 6월 9일 목요일부터 연습을 재개 합니다. 연습실이 삼성역 에서 둔촌돈역으로 변경되었습니다. 

라온필하모닉 합창단 가입신청 & 홈페이지 : https://raonphil.modoo.at/

 

[라온필하모닉합창단 - 홈]

프로와 아마추어가 함께하는 라온필하모닉합창단입니다.

raonphil.modoo.at

라온필하모닉합창단(아마추어합창단) 소개
- 지휘자 : 박용기 (전 포천시립합창단 지휘자)
- 공연 : 4~5회/년
- 연습 장소 : 5호선 둔촌동역 3번출구에서 나와 태평양 약국 옆 골목에서 3번째 건물 4층 (도보 10분 거리)
- 연습 일시 : 목요일 저녁 7시20분 ~ 9시40분
- 회비 : 4~5만원 (성악전공대학생 1~2만원, 프로성악가 가입신청 문의)
- 연혁 : 2014년 창단

728x90

내 탓을 하면 바뀌고 남 탓을 하면 안 바뀐다는 생각을 하고 있었는데. 이 책을 읽으면서 문구를 약간 수정했다. 

"내 탓을 하면 성장한다. "

내가 진짜 사업을 하고 있는 시뮬레이션을 하는 듯한 느낌을 준 책이었다.  

 

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791130638287 

 

파리에서 도시락을 파는 여자 - 교보문고

최정상으로 가는 7가지 부의 시크릿 | ★《선데이 타임스》 발표 영국 부자 345위★★5년 연속 자기계발 스테디셀러★ ★유튜브 600만 뷰 ‘인생 멘토’★★김미경 대표, 유영만 교수, ‘고기리막

www.kyobobook.co.kr


자주 실패하라, 빨리 금방 실패하라, 돈을 적게 들이고 실패하라
지휘하고 통제한다. 믿어주고 바란다. 믿어주고 점검한다. 
1. 일어서기만 해도 삶은 다시 시작된다. 
2. 나만의 기준을 세워라.
3. 100권의 책을 자기 것으로 만들어라. 
4. 결국 답은 현장에 있다. 
5. 도움을 받고 싶으면 도움을 청하라. 
6. 운을 내 편으로 만들어라. 
7. 비전을 제시하라. 
사업 공부를 위한 책 100권
- 경영 장사 공부를 위한 책
- 자기관리를 위한 책
- 리더십 공부를 위한 책
- 사람 공부를 위한 책
- 세상 공부를 위한 책
- 마켓팅 공부를 위한 책
- 거시적 안목과 통찰력 향상을 위한 책
- 좋은 부모가 되기 위한 책
경기를 타지 않을 것, 돈이 많이 들지 않을 것, 내가 잘하고 좋아해서 재미있게 할 수 있는, 다시 말해 미쳐서 할 수 있는 일일 것. 

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791130614670&gclid=CjwKCAjwy_aUBhACEiwA2IHHQNvXV2SB4VqVYX-0mli2p1I9Ws6Yx6kdza7EEyF2khVePlpnH2fK-hoCgzoQAvD_BwE 

 

파리에서 도시락을 파는 여자 - 교보문고

평범한 대한민국 여자가 유럽에서 일으킨 기적 | “기적은 행동하는 자에게 찾아온다!”유럽 10개국에 700여 개 매장을 만들어낸어느 40대 아줌마의 미라클 여정이 책은 전 세계에서 며칠에 한 개

www.kyobobook.co.kr

 

728x90

경이로움을 느낀 첫 번째 살아있는 사람이다. 

"나를 위해 날마다 기쁨을 찾으며 살겠다. "

"매일 도전하며 실패는 경험으로 위기는 기회로 느끼는 연습을 하겠다. "

이 부분이 이 책을 읽고 다짐했던 부분이다. 

정신 건강과 부가 어느 정도 비례한다는 말을 알아차리게 해준 사람이었다. 


나는 나를 있는 그대로 사랑하고 행복해지자고 결심한 상태여서, 당장 할 수 있는 것부터 해내며 날마다 기쁨을 찾으려고 노력했다. 
오히려 위기 다음에 기다리고 있을 기회가 기대되었다. 
실제로 거절 당하여, 나에게는 또 다른 위기가 생겼지만 신경 쓰지 않았다. 위기에 내성이 생겼기 때문이다. 
워런 버핏은 '성공이란 나이가 70이 넘어 내가 사랑받고 싶은 사람에게 사랑받는 것이다'
다른 사람들이 무엇을 말하거나 행동하더라도 선한 의도를 가정하라. 
르상티망은 약자가 강자에게 품는 증오, 복수, 격정, 질투, 분노 같은 게 뒤섞인 감정이다. 
돈 버는 것은 쉽고 재밌다. 
부자는 부를 얻기 위한 과정에서 일어나는 모든 일을 수용하고자 한다. 좋은 일이 있으면 겸허하게 받아들이고, 나쁜 일이 있으면 곧바로 자신의 태도를 고친다. 무엇보다 거저 얻으려고 하지 않는다. 
이미 일어난 실패와 실수를 겸허히 받아들이고 문제를 해결하기 위해 집중하는 걸 말한다. 
실패도 해봤던 나
결단 . 행동이 따르는 정보
자책의 시간은 짧게 갖고 다음 행동을 생각한다. 
내가 원하지 않은 일을 거절할 수 있는 힘을 가지겠다.
내가 선택한 관계가 최선이 되도록 그냥 뜨겁게 사랑해야 한다. 그것이 날 사랑하는 길이다. 그가 혹은 그녀가 완벽하지 않은 것은 당연하다. 

 

 

https://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791130677774&gclid=CjwKCAjwy_aUBhACEiwA2IHHQD_x8vFtqqZ09InU4JipGgRlK0-hd3jaHOvKxjJ5cLcHrcaEVoSYyxoCQfMQAvD_BwE 

 

웰씽킹(10만 부 기념 한정판 골드 에디션) - 교보문고

부를 창조하는 생각의 뿌리 | *** 《선데이 타임스》 발표, 영국 부자 상위 0.1% *** 유튜브 1,000만 뷰, 화제의 인생 멘토! *** 드니 하네칸, 존 리, 신사임당 강력추천! “부자가 되고 싶다면 부자의

www.kyobobook.co.kr

 

728x90

백과 사전 수준의 자기 개발 방법들이 들어가 있는책이다.

최근에 이렇게 많이 이익이 되는 글을 본적이 없었다. 

 

"결정이 끝나면 행동만하고, 오늘을 충실하게 살고, 한번에 한가지씩, 고민은 잠자기전 나에게 맡기고, 긴장을 풀고 하기. "

우선 이책에서 이부분만 실행해보자. 

 

 

 

https://en.wikipedia.org/wiki/Psycho-Cybernetics

 

Psycho-Cybernetics - Wikipedia

Psycho-Cybernetics is a self-help book written by Maxwell Maltz in 1960.[1] Motivational and self-help experts in personal development, including Zig Ziglar, Tony Robbins, Brian Tracy have based their techniques on Maxwell Maltz.[citation needed] Many of t

en.wikipedia.org

자아 이미지 심리학 Psycho Cybernetics
인간은 항상 자기 자신과 환경에 대해 스스로가 진실이라고 믿는 이미지에 따라 행동하고 느끼고 실천한다. 

합리적사고 -> 의식적 결정+상상력을 통한 목표 대상과의 커뮤니케이션 -> 자아 이미지 극적인 변화
= 새로운 자기통제 매커니즘
성공적인 Successful
진실된 자아 이미지
아주 작은 성공의 경험
한 사람을 정해 철저하게 연구하라 - 동경하는 성격, 성품, 인생, 업적을 성취한 사람들에 관한 스크랩
지금 나를 제한하는 것은?
목표, 신뢰, 긴장풀기, 학습, 실천
정신적 영화 기법
확신은 거짓말보다 더 위험한 진실의 적이다. - 프리드리히 빌헬름 나체
긴장을 푸는 이미지 훈련법. - 꼭두각시, 풍선, 평온한 장면
해결 지향적 용법
행복은 훌륭한 치료약 - 행복은 추구하는 것, 위험과 문제에 정면으로 맞서라. 
-성공 구성 성격-
방향감각(목표, 기대, 희망),
이해(의사소통, 실수=교훈),
용기(자기 안의 무한한 자원을 활용),
용(타인을 가장 중요한인물인 것처럼 대함 => 내가 가장 중요한 인물이란 이미지 영향),
존중(다른 사람을 가치있는 대상으로 여기는 훈련-> 내가 가치있는 사람이란 이미지 영향),
자신감(실패가 아닌 성공의 경험을상기- 믿음회복),
자기긍정(불완전함을 감정적으로 인정, 기다리지 말고 바로 시작)

역경지수(AQ Adversity Quotient)를 높여라
- 실패 구성 성격 -
욕구불만(유가기적 특성- 불만족스러워하면 문제해결),
공격성(욕구불만 + 좌절상태, 울분의 형태, 감정분출 적절한 경로 필요. ),
불안감(잘못된 측정 잣대, 완벽한 것과 비교),
고독감(감정적 유대감 단절, 노출, 상처, 모욕감에서 자아보호, 타인 두려움),
불확실성(완벽을위해 결정을 내리지 않거나 성급한결정, 소인만 완벽함을 추구한다, 단기적인 불확실성을 받아들이는 방법을 배워야 한다. ),
분노(반복된 느낌, 자신의 중요성 과대평가, 자신의 억울함을 입증),
공허감(부적절한 자아 이미지, 가치있는 목표, 삶을 즐길줄 알기, )

부정적인 생각을 발견하고, 수정한다. 일과 마칠때, 점심때, 부정적인 메터니즘을 바꿔라.  
위기상황 - 이미지 훈련-> 흥분
자아 구속 고삐 풀기 - 즉흥적으로 말하기, 무계획, 자기비판 멈추기, 평소보다 큰소리, 좋아하는 사람 사실 알리기

 


 

나의 필터

자아 이미지 심리학 Psycho Cybernetics

: 자기가 갖고 있는 이미지대로 행동한다. 자기가 갖고 있는 이미지만 사용(규정)하기에 실제 발현되지 않은 능력이 많다. 

성공적인 Successful

: 결과에 집착하지 않는 성공적인 사람이 되라

진실된 자아 이미지

: 적절하고 합리적인 수준의 자기자신되기.

: 판단 없이 있는그대로 자신을 인정하고(장단점 포함), 신뢰하고,  부끄럼없이, 창의적으로 자유롭게 표현

정신 영화기법

: 성공의 순간을 하나의 뚜렷하고 단순하며 생상한 이미지로 떠올리기 

: 신은 우리를 평화롭고, 자신감 있고, 활기찬 존재로 본다. 

: 우리의 목표는 독특한 성격과 업적을 개발하는것. 

창조성

1. 걱정은 돈걸기 전에. - 결심과 동시에 실천하는 습관, 자물쇠상자(정보, 관심사 수집, 장단점 조사 저장창고에 저장)

2. 지금 이순간에 반응하는 습관-관찰력 추진력, 꽉찬 하루(오늘 열심히 )

3. 한번에 한가지- 모래시계의 교훈, 

4. 하룻밤 자고 나서 다시 생각하라 - 다음날 성취했으면 하고 바라는 것을 생각하고 잠든다. 

5. 일하는 동안에는 긴장을 풀어라  

이제는 이 하찮은 것을 들여다 보며 시간을 더는 낭비하지 않을 거야.

시험을 잘 보든 못 보든 나는 이제 털끝만큼도 개의치 않을꺼야

 

과민반응- 소모적인 반사를 없앤다. 근육이완. 매일 반드시 휴힉취하기

 

1. 목표 설정

정확한 목록을 작성한 후 자아 이미지를 분석한다. 

2. 신뢰하라

자아 이미지에 들어 있는 제한되고 잘못된 프로그램을 구별해서 이를 우리 목적에 맞게 체계적으로 바꾼다. 

3. 긴장을 풀어라

실수하면 즉시 진로를 수정해서 목표를 달성한다. 

자아 이미지를 재프로그래밍하고 관리하는데 상상력을 활용한다. 

자기 통제 매커니즘과 효과적으로 의사소통하기 위해 자아이미지와 상상력을 함께 이용한다. 

이는 자동 성공 메커니즘처럼 작동하면서 장애물을 만나는 경우 뒤로 물러서는 행동을 포함해 목표를 향해 꾸준히 나아가게한다. 

비록 자신의 한계를 넘어서는 경우라 하더라도 특정한 목적을 달성하기 위해 필요한 아이디어나 정보로 또는 해결책을 정확하게 제공하는 거대한 검색 엔진처럼 자기 통제 매커니즘을 활용한다. 

4. 학습하라. 

5. 실천하라. 


내가 하고 싶지 않은일

: 일정에 쫓겨 밤새거나, 아플때 일하는것. 

: 시스템을 더 망치고 있는것. 

: 누구나 하는것. 

 

 

728x90

JPA 프로그래밍 입문 초반에 읽어서 조금 이해가 가기시작했는데 내용이 주관적인부분이 보여 자바ORM 표준 JPA 프로그래밍 으로 갈아탔습니다. 대부분의 내용이  "자바ORM 표준 JPA 프로그래밍 " 내용입니다. 

 

내용 출처 :
http://mobile.kyobobook.co.kr/showcase/book/KOR/9788960777330?OV_REFFER=https://www.google.com/

 

자바 ORM 표준 JPA 프로그래밍 - 교보문고

스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 | ★ 이 책에서 다루는 내용 ★■ JPA 기초 이론과 핵심 원리■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로

www.kyobobook.co.kr


http://www.yes24.com/Product/Goods/41787023

 

JPA 프로그래밍 입문 - YES24

JPA는 Java Persistence API의 약자로 자바 ORM 스펙(specification)이다. JPA는 하이버네이트를 개발한 가빈 킹(Gavin King)이 주도적으로 참여하여 만든 표준으로 1.0과 2.0을 거쳐 현재 2.1 버전까지 나온 상태이

www.yes24.com

JPA 기본개념. 

JPA 기본개념. 
JPA Java Persistence API
Java진영 ORM 기술 표준.

Entity 분석, SQL 생성, JDBC API 사용, 패러다임 불일치 해결.

하이버네이트 개발한 가빈 킹 이 주도적으로 참여 만든 표준 .
JPA 1.0 2006년 : 초기버전, 복합키, 연관관계기능 부족
JPA 2.0 2009년 : 대부분의 ORM 기능 포함하고 JPA Criteria가 추가
JPA 2.1 2013년: 스토어드 프로시져 접근, 컨버터, 엔티티 그래프 기능 추가. cf) java8 2014년, Hibernate5 2017년
JPA 2.4 의 hibernate 5.4.31(2021)

장점
생산성, 유지보수, 패러다임 불일치 해결, 성능(재사용)
데이터 접근 추상화, 벤더 독립성(다른종료 DB사용가능)

1. SQL 기존 문제점 : 반복(CRUD 계속 작성), SQL의존적 개발(필드 수정시 전체 수정, 엔티티를 신뢰할수없다), JPA와 문제해결.
2. 패러다임 불일치 : 상속(persist 1회로 해결), 연관관계(FK), 객체 그래프 탐색(지연로딩), 비교(find())
JPA 구현체 = JPA 프로바이더 = ORM 프레임워크
Hibernate 하이버네이트 << 이거 보통 사용.
EclipseLink 이클립스링크
DataNucleus 데이터 핵심(데이터 뉴클리어스)
* provider 제공자.
jpa 사용 핵심 라이브러리
hibernate-core.jar
hibernate.jpa2.1.api.jar

코드구성
1. 엔티티 메니저 팩토리 설정(EntityManagerFactory)
- 설정정보조회(persistence.xml) -> 생성(Persistence) ->생성(EntityManagerFactory) ->EntitiyManager
- 커넥션 풀도 생성하므로 비용이 아주큼, 애플리케이션 전체에서 딱한번 생성하고 공유해서 사용.
- 엔티티 매니저는 데이터베이스 커넥션과 밀접한 관계, 스레드간 공유하거나 재사용 안됨.
-사용이 끝난 엔티티 매니저는 반드시 종료, 인티티 매니저 팩토리도 반드시 종료.
2. 트랜젝선관리
3. 비지니스 로직
.persist()
.setXXX(value) :update : 변경감지(dirty checking): 플러시 호출->엔티티 스냅샷 비교=>변경되면 수정쿼리 쓰기지연 SQL 저장소 보냄. =>데이터베이스 보냄=>데이터베이스의 트랜잭션 커밋. 영속상태에서만 적용됨.
.remove()
.find(XX.class, id)
persistence context jpa가 관리하는 엔티티 객체 집합,
엔티티객체 DB 반영, DB에서 읽어온 데이터 어플리케이션에 제공
영속 콘텍스트에 보관된 객체를 persistent object 라고 부른다.
세션 단위로 생김

응용프로그램(엔티티객체) -> (EntityManger )-> 영속컨텍스트(영속객체) -> DB(레코드)
응용프로그램(엔티티객체) <- (EntityManger )<- 영속컨텍스트(영속객체) <- DB(레코드)

영속 컨텍스트 : 엔티티 타입 +식별자 키로 사용하는 일종의 보관소.
JEE 컨테이너를 사용하면 실행환경에 따라 여러 EntityManager 가 한 개의 영속 컨텍스트를 공유할수도 있다. 캐시 공유.

1. EntityManagerFactory emf = Persistence.createEntityManagerFactory() ;
EntityManager em = emf.createEntityManager(); : EntityManager 생성
2. ENtityTransaction trans = em.getTransaction();
trans.beging() : 트랜잭션 시작
3. User user = new User();
em.persist(user); :EntityManager를 통해 영속 컨텍스트에 객체 추가하거나 구한다.
4. trans.commit(); / trans.rollback() :트랜젝션 커밋
5. em.close() : EntityManager 닫기.


User user = entityManager.find(User.class, "A@A.com"); user 엔티티의 아이디 A@A.com 찾기

 

환경설정 & 기본 코드
apllication.xml 전용속성
hibernate.show_sql :SQL 출력
hibernate.format_sql: 자동정렬 출력
hibernate.use_sql_commentss: 주석도 같이 출력
hibernate.id.new_generator_mapping: false(default) : jpa 표준에 맞춘 새로운 키 생성 전략을 사용. allocationSize 속성사용바뀜
hibernate.hbm2ddl.auto :
- create(스키마 자동생성)
- create-drop(create속성 + 종료후 생성한 DDL 제거 : drop +create+drop)
- update(변경사항만 수정)
- validate(변경사항 있으면 경고를 남기고 어플리케이션 실행안함)
- none(자동 생성기능을 사용하지 않음, 속성자체를 삭제 or 유효하지 않은 값 입력.)
jpa.hibernate.naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl : 카멜 -> 스네이크
spring.jpa.hibernate.use-new-id-generator-mappings =true : 키 생성 전략시, false 일 겨우 기존 하비어네이트 시스템 유지보수. true 설정시 allocatonSize 속성 사용방식 달라짐.
** 운영주의 사항 : create, create-drop, update 옵션 사용 불가 개발단계에서만
*개발시 초기 create, update, 자동화테스트 ci서버 create or create-drop, 테스트 서버 update or validate, 스테이징, 운영은 validate or none
JPA2.1부터 스키마 자동생성기능 표준으로 지원. 하지만 update, validate 옵션은 지원하지 않음. ????


JPA 어노테이션 패키지 위치
import javax.persistence.*;

JPA 실행 위한 기본 설정파일
persistence.xml
- 구현체들이 자동으로 엔티티 인식못할때 설정가능, JPA 표준속성, 하이버네이트 속성 외
- persistence-unit : DB 이름 그와 관련 DB 설정
커넥션 풀 설정 spring.datasource.hikari.connection-timeout = 20000 : 최대 커넥션 수n
spring.datasource.hikari.minimum-idle= 10 : #HikariCP 사용 유지 최소 커넥션 수
spring.datasource.hikari.maximum-pool-size= 10 : 최대 풀 사이즈
spring.datasource.hikari.idle-timeout=10000 : 최대 유휴(대기)시간
spring.datasource.hikari.max-lifetime= 1000 : 종료 후 최대 연결 시간
spring.datasource.hikari.auto-commit =true : 자동 커밋 기본설정


https://www.javadevjournal.com/spring-boot/spring-boot-hikari/#:~:text=a%20connection%20spring.-,datasource.,in%20a%20connection%20pool%20spring.
방언 dialect 방언 표준 아닐때 사용
spring.jooq.sql-dialect
https://wannaqueen.gitbook.io/spring5/spring-boot/undefined-1/31.-sql-by-ys/31.6-jooq

데이터 타입
- 가변문자 타입 MySQL(VARCHAR), 오라클(VARCHAR2)
- 숫자 타입 MySQL(integer), 오라클(Number)
다른 함수명
- SQL표준(SUBSTRING()), 오라클(SUBSTR())
페이징 처리
- MySQL(LIMIT), 오라클(ROWNUM

Hibernate- 현재 45개 데이터베이스 방언 지원. )
엔티티 엔티티
(사전) 독립체, 인간이 생각하는 개념 또는 정보의 세계에서는 의미있는 정보의 단위

엔티티 매니저 팩토리
- DB 갯수만큼
- 엔티티 매니저 팩토리는 스레드 세이프, 엔티티 매니저는 동시성 문제, 스레드간 공유 안됨.
- 하는일
1. 에플리케이션에서 관리- 직접 생성, 종료
2. 컨테이너에서 관리 - JBoss EAP, 웹로직, TomEE와 같은 JEE 컨테이너

영속성 컨텍스트
- 엔티티를 영구 저장하는 환경.
- 개념적, 엔티티 매니저 생성할 때 하나 만들어짐, 엔티티 매니저를 통해서 영속성 컨텍스트에 접근가능, 관리
- 기본적으로 하나의 엔티티 매니저에 하나의 영속성 컨텍스트 만듬.


* 엔티티매니저 팩토리 코드
public T find(Class entityClass, Object primaryKey);
먼저 1차 캐시에서 엔티티를 찾고 만약 찾는 엔티티가 1차 캐시에 없으면 데이터베이스에서 조회 한다.
존재하지 않으면 null
1차캐시 - 어플리케이션 수준의 캐시.
조회 -> 1차캐시없으면 데이터베이스 조회->조회 데이터로 엔티티 생성, 1차 캐시 저장-> 조회한 엔티티 반환
==>동일성, 동등성 모두 같은이유 , Repeatable read 등급 트랜잭션 격리 수준을 제공

public T getReference(Class entityClass, Object primaryKey);
존재하지 않으면 EntityNotFoundException
쿼리를 바로 실행하지 않고 프록시 객체를 리턴, 프록시 객체는 최초 데이터가 필요한 시점에 select 쿼리를 실행.
세션 범위 밖에서 첫 실행시 ({}) getFiled 실행시 LazyInitializationException -no Session 발생

public void persist(Object entity);
쓰기지연(transactional write-behind) : 트랜젝션 커밋 직전까지 데이터베이스에 엔티티를 저장하지 않고 내부 쿼리 저장소에 insert 쿼리를 모아둠.


@PersistenceContext
EntityManager em; --JEE 관리하는 트랜젝션 참여.
엔티티 생명주기 엔티티 생명주기
비영속 new/transient : 영속성 컨텍스트와 전혀 관계가 없는 상태 , 객체만 생성했고 아직 저장안함.
- Member member = new Member();
영속 managed: 영속성 컨텍스트에 저장된 상태
- em.persist(member);
- em.find()
- jpql 사용 상태
준영속 detached : 영속성 컨텍스트에 저장되었다가 분리된 상태
- em.detach()
- em.close();
- em.clear() ; 영속성 초기화
삭제 removed : 삭제된 상태
- em.remove(member);

영속성 컨텍스트 특징
1. 식별자 존재
2. 보통은 트랜젝션 커밋할때 데이터베이스 반영(flush)
3. 장점: 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기 지연, 변경감지(update시 dirty checking), 지연로딩

동적 update, insert
@org.hibernate.annotations.DynamicUpdate
@Dynamic Insert
컬럼이 30개 이상될때 정적수정쿼리보다 빠름. 컬럼 많을때 고려.

플러시
영속성 컨텍스트의 변경 내용을 데이터베이스에 "동기화" 하는 작업.
변경감지동작, 영속성 컨텍스트에 있는 모든 엔티티 스냅샷과 비교, 수정된 엔티티를 찾는다. 수정쿼리 SQL 젖아소, 후에 데이터베이스 전송
호출 방법: 직접호출(em.flush()), 트랜잭션 커밋 시 플러시 자동호출, JPQL & Criteria 객체지향 쿼리 실행시 플러시 자동 호출
e.setFlushMode(FlushModeType.AUTO);
FlushModeType.AUTO : 커밋이나 쿼리를 실행할 때 플러시(기본값)
FlushModeType.COMMIT: 커밋할때만 플러시

준영속
영속->준영속
1차 캐시, 지연 SQL 저장소, 변경감지, 지연로딩, 해당 엔티티를 관리하기 위한 모든정보 제거.
식별값 가짐
em.detach()
: 특정 한 엔티티 영속성 컨텍스트 관리하지마!
em.clear();
: 해당 엔티티 영속성 컨텍스트 관리하지마! , 수정해도 DB 영향 없음
em.close()
:개발자가 실제 사용하는경우 드뭄

병합
준영속-> 영속
em.merge(member);
새로운 영속 상태의 엔티티를 반환.
cf) 영속성여부(엔티티관리여부) : em.contains(member)

비영속 병합
해당 엔티티가 없으면 생성해서 병합. 있으면 업데이트.

*context : 맥락, 문맥
엔티티 맵핑 @Entity
테이블과 매핑되는 기본 단위.
- name : jpa에서 사용할 엔티티 이름.
- 기본생성자 필수(public or protected)
- final 클래스, enum, interface, inner 클래스에서 사용불가.
- 저장할 필드에 final 사용하면안된다.

@Table
클래스가 어떤 테이블과 매핑되는지 설정
- name :매핑할 테이블이름
- catalog : catalog 기능있는 데이터베이스에서 매핑
- schema
- uniqueConstraints : DDL 생성시 유니크 제약조건.
uniqueConstraints={@UniqueConstraint(name="NAME_AGE_UNIQUE", columnNames={"NAME", "AGE"})}

@Id

엔티티 식별자
- 직접할당
자바 기본형, 자바 래퍼형, String, java.util.Date, java.sql.Date, java.math.BigDecimal, java.math.BigInteger
- IDENTITY 전략:자동 키생성 : 주로 MySQL,, PostgreSQL, SQL Server, DB2에서 사용.
@GeneratedValue(strategy=GenerationType.IDENTITY)
DB 식별 컬럼 사용해서 식별자 생성:persist() 저장 시점 insert 쿼리 실행, 쓰기지연 동작안함.
spring.jpa.hibernate.use-new-id-generator-mappings =true
- SEQUENCE 전략 : 데이터베이스 시퀀스 사용 : 오라클, PostgreSQL, DB2, H2
@SequenceGenerato(name="review_seq_gen", sequenceName="hotel_review_seq", allocationSize=1)
@GeneratedValue(generator="review_seq_gen")
persist() 저장 시점 시퀀스 추가 쿼리 실행-> 트랜젝션 commit 시 insert
allocationSize 기본값 50 : 시퀀스 전략. 50개를 메모리에 미리 할당받아 호출수를 줄임.
단 두개 이상 jvm 을 사용하면 충돌 우려 allocationSize =1 사용하여 해결.
- TABLE 키생성 테이블 사용 :
@TableGenerator(name="idgen", table="id_gen", pkColumnName="entity", pkColumnValue="city", valueColumnName="nextid", initialValue=0, allocationSize=1)
GenerateValue(generator="idgen")
1. id_gen테이블에서 식별자 구함. 레코드 존재 않을 때 insert 실행, 다음식별자 id_gen 반영
-AUTO전략
@GeneratedValue(strategy=GenerationType.AUTO) 오라클 sequence, mysql identity를 사용
* 자연키 : natural key, : 비즈니스에 의미가 있는 키 ex) 주민번호, 이메일, 전화번호
* 대리키 : surrogate key : 비즈니스와 관련없는 임의로 만들어진 키, 대체키,ex) 오라클 시퀀스, auto_increment, 키생성 테이블 사용.
대리키 권장


@Basic
보통 생략되어 사용, int, long, String과 같은 기본타입, 래퍼타입, BigInteger, BigDecimal, Calendar, Time, Timestamp, enum, 상기의 배열

@Timestamp

java.util.Date 사용시
@Temporal(TemporalType.TIMESTAMP)
java.sql.Timestamp , java.util.Date로 변환
DATE : java.sql.Date
TIME : java.sql.Time
TIMESTAMP : java.sql.Timestamp : Mysql : datetime, H2,오라클, postgreSQL : timestamp
하이버 네이트 5.2 LocalDateTime 사용

@Column
없으면 타입명과 컬럼값 같음
- name
- nullable=false
- length=10
- insertable=false :면 id값 빼고 insert
- updatable=false : 면 update 대상 제외
-table 하나의 엔티티 두개이상 테이블 매핑.
- unique
-columnDefinition
- precision, scale : BigDeciaml 타입에서 사용한다. BingInteger도 사용가능, precision 소숫점포함 전체 자릿수, scale 소수의 자릿수 아주 큰숫자, 정밀 한소수 다루어야 할때 사용.

@Enumerated(EnumType.STRING)
STRING 설정안하면 기본타입으로 저장.
@Lob
필드길이 제한 없음, CLOB: 필드 타입 문자 BLOB : 나머지

@Access(AccessType.PROPERTY) 필드 상단
프로퍼티 접근방식, get, set 메서드 통해서 접근 == @id 를 get 메소드 선언 과 같음
@Access(AccessType.FIELD) get 메서드 상단
필드 접근방식 set 메서드를 사용하지 않음. == @id 를 필드에 선언 과 같음
* 필드에 id 를 선언하고 메서드에 @Access 프로퍼티 선언 하면 동시사용 가능.

@transient
transient private long timestamp = System.currentTimeMillis();
사전 일시적인, 트랜션트
영속대상 제외

기본생성자
필수, public or protected

final class 불가.
프록시 객체를 생성 부락.

Serializable 인터페이스
캐시 구현기술 사용시. 필요

exclude-unlisted-classes true 시 자동추가 비활성화

cf) 필드에서만 쓸수있는게 아니라 get 메소드에 선언가능
트랜젝션 ACID : Atomic 원자성, Consistency 일관성, Isolation 격리성, Durability 지속성
Read Uncommited   커밋되지 않는 읽기 : 커밋안된 데이터  다른트렌젝션 update, insert, delete 읽기
                                Dirty reads :  Rollback 시 정합성 깨짐
Read Commited       커밋된 읽기 :  다른 트랜젝션  update insert delete 읽기
                                Non-Repeatable read :  업데이트 영향으로 첫번째 조회 값과 두번째 조회값 다름
Repeatable Read     반복 읽기 : 다른 트랜젝션 insert, delete 읽기
                                 Phantom read :  insert, delete 영향으로 첫번째 조회 값과 두번째 조회가 있다없음
Serilization                직렬화 : 락을 걸어 트랜잭션 이용하는 부분 사용 못함. 병렬성 저하. 


JPA 낙관적 락 : 트랜잭션 충돌이 거의 발생하지 않는다. 커밋 되는 시점에 충돌여부 알수있다. 
LockModeType.NONE : 커밋시 version정보 update 쿼리로 : 두번의 갱신문제 해결
                                    > 조회 ~ 수정 트랜잭션 격리
LockModeType.Optimistic:  커밋시 version 정보를 select 쿼리로 보냄:   dirty read, Non-Repeatable Read 해결                    +스칼라 타입 으로 조회 시 소프트락 적용안됨 ?? 스칼라타입: 단하나, <->컴포지트
Optimistic.Force_increment : 커밋시 version 정보를 update  쿼리로 : 연관관계 엔티티 함께 버전 관리

JPA 비관적 락 : 타임아웃. 
PESSIMISTIC_WRITE
PESSIMISTIC_FORCE_INCREMENT

출처 : https://ojt90902.tistory.com/723

RESOURCE_LOCAL

: 변경내용 영속 컨텍스트에 보관, 트랜잭션을 커밋하는 시점에서 영속 컨텍스트로 추적한 변경을 DB에 반영.

JTA 트랜잭션 타입.
Java Transzction API
UserTransaction utx = (UserTransaction)new InitaialContext().lookup("java:comp/UserTransaction");
utx.begin();
EntityManager em = emf.createEntityManager();
em.joinTransaction; (이부분은 필히 작성안해도됨. )

utx.commit()
utx.rollback()
@JoinTable 조인테이블 = 연결 테이블 = 링크 테이블 
다대다 관계 설정. 
cf) 연관관계 설정 - @JoinColumn or JoinTable

일대일, 일대다, 다대일, 다대다

벨류 객체 한개의 값, 다른 벨류 객체와 구분하기 위한 식별자를 갖지 않는다.
자신만의 라이프 사이클을 갖지 않는다. 자신이 속한 객체가 생성될 때 함께 생성/삭제시 삭제

생성시 모든 프로퍼티를 파라미터로 전달받는다.
읽기전용 프로퍼티만 제공한다.
equals() 메서드를 재정의 한다.
각 프로퍼티의 값을 이용, 해시코드를 생성하도록 hashCode()메서드를 재정의 한다.

public class ValueObject{
private String a;
private String b;
private String c;

public ValueObject(String a, String b, String c){
this.a = a;
this.b = b;
this.c = c;
}

public String getA(){return a;}
public String getB(){return b;}
public String getC(){return c;}

@Override
public boolean equals(Object o){
if(this==o) return true;
if(o==null || getClass() !=o.getClass()) return false;
ValueObject vo = (ValueObject)o;
return Objects.equals(a, vo.a) && Objects.equals(b, vo.b) & Objects.equals(c, vo.c);
}

@Override
public int hashCode(){
return Objects.hash(a,b,c);
}
}
@Embeddable
@Embedded
@AttributeOverrides
@secondaryTable
@Embeddable
public class ValueObject{
}

@Entity
public class UsingObject{

@Id
private String id;

@Embedded
privae valueObject;
}

매핑 대상이 되도록 설정. update 시 트랜젝션 내에서 변경되면 변경내역 DB 반영

@Embedded
@AttributeOverrides({
@AttributeOverride(name..., column=@Column(name="valueObject")), @AttributeOverride ...})
private Address valueObject2;

동일 테이블 사용하는 밸류클래스 이름 재정의 사용

@Entity
@SecondaryTable(
name="sight_detail",
pkJoinColumns=@PrimaryKeyJoinColumn(name="sight_id",refferencedColumnName="id" )
)
public class Sight{

@Embeded
@AttributeOverrides({
@AttributeOverride
})
private SightDetail detail;
}

복합키 사용 벨류테이블
1. equals()메서드, hashCode() 메서드 재정의
2. Serializable 인터페이스 상속.
(3. 생성자. null 이면 IllegalArgumentException. )
@Entity
@public class MonthChage{
@Id
privateMonChageId id;
}
@Embeddable
public classMonChagedId implements Serializable{
@Column

}

 

방향 & 다중성 & 연관관계 주인
설명  방향 :direction : 단방향, 양방향
다중성 :multiplicity: 다대일(@ManyToOne), 일대다(@OneToMany), 일대일(@OneToOne), 다대다(@ManyToMany)
연관관계 주인 :owner: 양방향 연관관계의 주인

@JoinColumn
name : 매핑할 외래 키 이름
referencedColumnName :외래키 참조하는 대상 테이블 컬럼명
foreignKey : 외래키 제약조건. 테이블 생성시만 사용
그외 columne 속성과 같음

@ManyToOne : 다대일 관계 사용
optional : false : 항상 연관된 테이블 있음.
fetch : 글로벌 패치 전략 @ManyToONe = FetchType.EAGER, @OneToMany=FetchType.LAZY
cascade : 영속성 전의 기능
targetEntity : 연관된 엔티티 타입 정보 설정, 거의 사용안함.
@OneToMany
private List members;
@OneToMany(targetEntity=Member.class)
private List members;


단방향
회원 - 팀.
객체 그래프 탐색 : 참조를 통해서 연관관계를 탐색.  ex) member.getTeam()
저장 , 수정
em.persist(team1)
member1.setTeam(team1)
em.persist(member1)
조회
member.getTeam()  : 객체 그래프 탐색
삭제
Member member1 = em.find(Member.class, "member1");
member1.setTeam(null);  ///1. 연관관계  모두 제거.
em.remove(team)               ///2. 해당 엔티티 삭제

양방향
연관관계의 주인은 테이블에 외래키가 있는곳.
** 양방향 연관관계의 주의점 : 객체 관점에서 양쪽방향에 모두 값을 입력해주는 것이 가장 안전.
** 무한루프 주의 toString 시 member, team 에서 서로 호출. Lombok 사용시 필히.
em.persist(team1)
member1.setTeam(team1)                     // 객체 , 실제 데이터 저장
team1.getMembers().add(member1)  //객체 정보 저장
em.persiste(member1)
+)
public void setTeam(Team team){
  if(this.team !=null) this.team.getMembers().remove(this);
  this.team = team;
  team.getMembers().add(this);
}
조회
List<Member> members = team.getMembers();


cf)
JPQL
단방향 연관관계 : 다대 일
String jpql = "select m from Member m join m.team t where t.name=:teamName";
List resultList = em.createQuery(jpql, Member.class).setParameter("teamName", "팀1").getResultList();
다중성 DB ERD 객체 단방향 객체 양방향
다대일
@ManyToOne
연관관계맵핑 @ManyToOne
@JoinColumn(name="TEAM_ID")
privae Team team;   //cf) 0..1   : zero to one 0~1맵핑
@OneToMany(mappedBy = "team")
private List<Member> memers;
//cf) Collection, List, Set, Map 가능
일대다
@OneToMany
연관관계맵핑 @OneToMany
@JoinColumn(name="TEAM_ID")
private List<Member> members;
@ManyToOne
@JoinColumn(name="TEAM_ID", insertable=false, updatable=false)
private Team team; //읽기전용
일대일
@OneToOne
연관관계맵핑 @OneToOne
@JoinColumn(name="TEAM_ID")
private Team team;
@OneToOne(mappedBy = "member")
private Member member;
다대다
@ManyToMany
 
연관관계맵핑 @ManyToMany
@JoinTable(name="Member_has_TEAM"
    , joinColumns = @JoinColumn(name="MEMBER_ID")
   , inverseJoinColumns = @JoinColumn(name="TEAM_ID"))
private List<Team> teams;
@ManyToMany(mappedBy ="team")
private List<Member> members;

다대다: 매핑 한계 ; 연결 엔티티 사용
연관관계맵핑 @Entity
@IdClass(MemberTeam.class)
public class MemberTeam{

  @id
  @ManyToOne
  @JoinColumn(name="MEMBER_ID")
  private Member member;

  @id
  @ManyToOne
  @JoinColumn(name="TEAM_ID")
  private Team team;

  private String desc;
}
public class MemberTeamId impliments Serializable{

  private int member;
  private int product;

  //hashCode, equals 수정.

  // 기본생성자
}


@OneToMany(mappedBy = "member")
private List<MemberTeam> memberTeam;
다대다: 새로운 기본키 사용    
  @Entity
@IdClass(MemberTeam.class)
public class MemberTeam{

  @id
  @GeneratedValue
  private Long id;

  @ManyToOne
  @JoinColumn(name="MEMBER_ID")
  private Member member;

  @ManyToOne
  @JoinColumn(name="TEAM_ID")
  private Team team;

  private String desc;
}
@OneToMany(mappedBy="member")
private List<MemberTeam> membersTeams ;



* 0..1  : zero to one : 0~1개 맵핑

고급매핑- 상속관계 매핑 : 슈퍼타입, 서브타입 논리모델
- 조인전략
@Inheritance(strategy=InheritanceType.JOIND)
- 각각의 테이블로 변환, 타입컨럼 추가. 

@Entity
@Inheritance(strategy=InheritanceType.JOIND)
@DiscriminatorColumn(name="DTYPE")
public abstract class Item{
  @Id @GeneratedValue
  @Column(name="ITEM_ID")
  private Long id;
  //생략
}

@Entity
@DiscriminatorValue("A")
public class Album extends Item{
  //생략
}

// 기본키 컬럼 재정의
@Entity
@DiscriminatorValue("B")
@PrimaryKeyJoinColumn(name="BOOK_ID")  //ID 재정의
public class Book extends Item{
  //생략
}

장점: 테이블이 정규화, 외래키 참조 무결성 제약조건활용, 저장공간 효율적
단점 : 조회 할때 조인 많이 사용 성능저하, 조회 쿼리 복잡, 등록시 insert 두번실행. 

cf ) 구현클래스마다 테이블 전략(@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS))
- DB , ORM 양쪽 시선으로도 비효율적. 
 
- 단일 테이블 전략
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
조인이 없어 빠르고 단순하지만, 자식엔티티가 매핑한 컨럼은 모두 null 허용.  테이블이 커지면서 저하 우려. 
구분컬럼  지정하지 않으면 기본으로 엔티티이름 사용. 

@Entity() 
@Table(name="LINK") 
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) 
@DiscriminatorColumn(name="LINK_TYPE", length = 1) 
public class AbstractLinkModel extends BaseEntity{
 생략
@Entity 
@DiscriminatorValue("B") 
public class LinkBookModel extends AbstractLinkModel { 
- 구현클래스마다 테이블 전략

@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
일반적으로 비추천. 구분컬럼 미사용, 티에블 통합 쿼리 어려움.  orm db 양쪽에서 모두 비추 
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class Item{
하기 동일. 
테이블 상관없이 특정정보 자식에게 상속
@MappedSuperclass
공통사용 매핑정보 모아줌 - ex) 등록일자, 수정일자, 등록자, 수정자. 
@MappedSuperclass

public abstract class Item{
@IdClass

@IdClass  : 데이터베이스에 가까움
@Entity
@IdClass(PId.class)
public class Parent{
  @Id
  @Column(name="P_ID1")
  privae String id1;

  @Id
  @Column(name="P_ID2")
  privae String id2;

// 생략
}

public class PId implements Serializable{
  private String id1;
  private String id2;
  public PId(){} 
  public ParentId(String id1, String id2){this.id1=id1; this.id2=id2;}
  @Override
  public boolean equals(Object o){...}
  @Override
  public int hashCode(){...}
}
@EmbeddedId @Entity
public class Parent{
  
  @EmbeddedId
  private PId id;

// 생략
}

@Embeddable
public class PId implements Serializable{
  @Column(name="P_ID1")
  private String id1;
 @Column(name="P_ID2")
  private String id2;
  public PId(){} 
  public ParentId(String id1, String id2){this.id1=id1; this.id2=id2;}
  @Override
  public boolean equals(Object o){...}
  @Override
  public int hashCode(){...}
}

** equeals, hashCode  구현 안하면 예상과 다른엔티티 조회되거나 엔티티를 찾을수없어짐. 
복합키는 @GenerateValue 불가.  
식별 비식별 * 식별관계 : Identifying Relationship : 받아온 식별자를 기본키 +외래키로 사용
* 비식별관계 : Non-Identifyng Relationship : 받아온 식별자는 외래키로만 사용, 새로운 식별자 추가.  Null 허용시 선택적 비식별(Optional) , 허용안하면  필수적 비식별(Mandatory)

** equeals, hashCode  구현 안하면 예상과 다른엔티티 조회되거나 엔티티를 찾을수없어짐.
비식별 고나계를 사용하고 long 타입 대리키 사용하는것 추천. 
@IdClass
(비식별)
 데이터베이스에 가까움
@Entity
@IdClass(PId.class)
public class Parent{
  @Id
  @Column(name="P_ID1")
  privae String id1;
  @Id
  @Column(name="P_ID2")
  privae String id2;

// 생략
}

public class PId implements Serializable{
  private String id1;
  private String id2;
  public PId(){} 
  public ParentId(String id1, String id2){this.id1=id1; this.id2=id2;}
  @Override
  public boolean equals(Object o){...}
  @Override
  public int hashCode(){...}
}
@EmbeddedId
(비식별)
객체지향적, JPQL 작성시 불리할수있다. 

@Entity

public class Parent{
  
  @EmbeddedId
  private PId id;

// 생략
}

@Embeddable
public class PId implements Serializable{
  @Column(name="P_ID1")
  private String id1;
 @Column(name="P_ID2")
  private String id2;
  public PId(){} 
  public ParentId(String id1, String id2){this.id1=id1; this.id2=id2;}
  @Override
  public boolean equals(Object o){...}
  @Override
  public int hashCode(){...}
}

복합키는 @GenerateValue 사용불가
@IdClass
(식별)
@Entity
public class Parent{
  @Id
  @Column(name="P_ID")
  privae String id;
// 생략
}

public class ChidId impliments Serializable{
  private String parent; 
  private String childId;

  //equals, hashcode
}


@Entity
@IdClass(ChildId.class)
public class Child{
  @Id
  @ManyToOne
  @JoinColumn(name="P_ID")
  privae Parent parent;

  @Id @Column(name="CHILD_ID")
  private String childId;
// 생략
}
@EmbeddedId
(비식별)
@Entity
public class Parent{
  @Id
  @Column(name="P_ID")
  privae String id;
// 생략
}

@Embeddable
public class ChidId impliments Serializable{
  private String parentId;
  @Column(name="CHILD_ID")
  private String id;

  //equals, hashcode
}


@Entity
public class Child{
  @EmbeddedId
  private ChildId id;

  @MapsId("parentId")
  @ManyToOne
  @JoinColumn(name="P_ID")
  public Parent parent;
// 생략
}
일대일 식별 @Entity
public class Board{
  @Id @GeneratedValue
  @Column(name="BOARD_ID")
  private Long id;

  @OneToONe (mappedBy ="board")
  private BoardDetail boardDetail;
}

@Entity
public class BoardDetail{
  @ID
  private Long boardId;
 
  @MapsId
  @OneToONe
  @JOinColumn(name="BOARD_ID")
  private Board board
}

 

프록시와 연관관계  
em.getReference( 실제 사용 하는 시점(targer.getName() , member.getOrders().get(0))까지 데이터베이스 조회 미룸.  접근을 위임한 프록시 객체 반환. 이미 엔티티가 있으면 엔티티 반환. 
- 준영속시 에러 발생   LazyInitializationException
- 연관관계 설정시 데이터 베이스 접근횟수 줄임. 
- PersistenceUnitUtil.isLoaded(entity); 프록시 인지 엔티티인지 확인. 
즉시로딩 vs 지연로딩 즉시로딩 :EAGER: @ManyToOne(fetch=FetchType.EAGER)
지연로딩 :LAZY: @ManyToOne(fetch=FetchType.LAZY)

기본설정값
@ManyToOne, @OneToOne:  즉시로딩 EAGER
optional=false : 내부조인
optional=true : 외부조인
@OneToMany, @ManyToMany :  지연로딩. LAZY
optional=fals: 외부조인
optional=true : 내부조인 

추천은 모두 지연로딩 사용후 완료단계에서 즉시로딩으로 최적화 
컬랙션이 많을경우 즉시로딩 미권장. 
즉시로딩은 항상 외부조인 사용. 
CASECADE  
   
   



hash code
threadLocal

 

 

728x90
i/f  개념 inter + face  : / 는 결합을 의미. ex) I/O : 입력 출력 장치
inter 의 뜻은 사이(between)  face 는 마주보다. 직면하다.
서로 다른 두 시스템을 이어주는 부분, 그런 접속 장치. 
https://ko.dict.naver.com/#/entry/koko/780e996aabb748788158079de5b19d4c

java 개발 의
인터페이스
인터페이스는 구현되지 않은 그룹 및/또는 메서드 집합을 지정합니다.
https://www.techopedia.com/definition/113/interface-if-programming#:~:text=(I%2FF)-,What%20Does%20Interface%20(I%2FF)%20Mean%3F,to%20all%20defined%20interface%20methods.
IT 일반적 인터페이스 요약 사물과 사물 사이 또는 사물과 인간 사이의 경계에서, 상호 간의 소통을 위해 만들어진 물리적 매개체나 프로토콜을 말한다. I/F로 축약하여 사용하기도 한다. 크게 ‘하드웨어 인터페이스’, ‘소프트웨어 인터페이스’ 그리고 ‘사용자 인터페이스’의 세 가지로 구분된다. 
1) 하드웨어 인터페이스
컴퓨터 등 정보 기기의 하드웨어 간 통신을 위해서 존재하는 입출력 포트의 전기적 연결 장치인 커넥터(connector), 신호의 송수신 방법(프로토콜) 등을 말한다. 컴퓨터 관련 버스, 저장 장치 및 다양한 입출력 기기들 내에 존재하며, 주로 병렬 연결과 직렬 연결로 나뉘어진다. 컴퓨터 내부 장치나 구성 요소간의 상호 접속을 가능하게 하는 플러그, 커넥터, 카드 등이 하드웨어 인터페이스에 속한다. 하드웨어 인터페이스의 종류로는 USB(Universal Serial Bus)와 같은 직렬 커넥터, RS-232C와 같은 통신용 직렬 인터페이스, SCSI와 같은 병렬 인터페이스 장치 등이 있다.
 2) 소프트웨어 인터페이스 소프트웨어 간의 통신을 위해 메시지를 전달하는 방식 등이 결정된 것으로, 다양한 레벨에서 다양한 종류의 인터페이스가 존재한다. 운영체제(OS)와 하드웨어들 사이의 인터페이스, 운영체제와 응용 프로그램이 상호 작용하는 인터페이스, 객체 지향 프로그래밍에서 응용 내의 객체들이 서로 상호 작용할 수 있도록 하는 메소드 등이 소프트웨어 인터페이스에 속한다. 소프트웨어 설계 시 자원에 대한 접근을 잘 정의된 진입점(entry point), 즉 인터페이스를 통해서만 가능하도록 함으로써 시스템 자원에 대한 기능성과 안정성을 제공할 수 있다.

3) 사용자 인터페이스 
기계, 특히 컴퓨터와 사용자(인간) 사이의 상호 작용과 정보 교환을 위한 인터페이스로 컴퓨터 상호 작용(HCI : human-computer interaction) 혹은 인간-기계 인터페이스(MMI : man-machine interface)라고도 한다. 사용자 인터페이스는 크게 입력과 출력의 두 가지 방법을 제공한다. 입력은 사용자가 시스템을 조작하는 방법을 정의하고, 출력은 사용자가 조작에 따라 시스템이 생성한 결과를 제시하는 수단이다. 좋은 사용자 인터페이스는 심리학과 생리학에 기반하여 사용자가 필요한 요소를 쉽게 찾고 사용하며 정확한 결과를 손쉽게 얻어낼 수 있도록 설계해야 한다. 
컴퓨터에서의 사용자 인터페이스는 프로그램이 사용자에게 표시되는 그래픽, 텍스트, 음성 정보와 사용자가 프로그램을 제어하는 사용자 제어 시퀀스에 대한 상호 작용 방법을 모두 포함한다. 사용자 인터페이스 종류로는 그래픽 사용자 인터페이스(GUI : graphical user interface), 웹 사용자 인터페이스(WUI : web user interface), 명령 줄 인터페이스(CLI : command-line interface), 배치 인터페이스(batch interface), 터치 인터페이스(touchinterface), 음성 사용자 인터페이스 등이 있다.
[네이버 지식백과] 인터페이스 [interface] (두산백과)https://terms.naver.com/entry.nhn?docId=2837557&cid=40942&categoryId=32828 
   
   

 

 

 

728x90

하기 내용은 캘리최(https://www.youtube.com/channel/UCZmPiZdqohchy4y1NWKdYZg)

동기부여 모닝콜 내용을 정리한 것입니다. 

영상 정리 내 생각
1%만이 사용하고 있는 90% 무의식 사용법 | #1 | 밥 프록터 Bob Proctor
https://youtu.be/jmSROm1B1bM
1 일. 집중력과 상상력 나는 내가 원하는 것을 끌어당긴다.
인간은 오직 약한 주의력과 상상력 부족에 의해서 만 제한됩니다. (You are only Limited by Weakness of Attention and Poverty Of Imagination!)
원하는 것을 생각하고, 감정적으로 몰두하고 집중 할 수 있다면 그것을 가질 수 있다. 
상상력은 무엇이든 창조 할 수 있고 어디든지 데려갈 것이다.
원하는 것을 지속적으로 생각하면 도달할 수 있다 .


저서 위대한 발견
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=2487685


나를 싫어 하는 상태에서 남의 칭찬에 목 말라 하고 있었고 이것이 가장 큰 실패의 원인이었다. 

나의 목표는 어디로 가버리고 지금 내일을 하고 이 일에 대한 평가에 목 매어 버리기 되었고 직장 생활 7년 차 되는 시점에  정도 지난 시점에서 부정적인 피드백만 난무하는 회사에 들어갔더니 그대로 악순환이 되었던 것이다. 

나는 나를 있는 그대로 온전히 이해하고 내가 원하는 것을 이루는 데에만 집중한다. 
흥분하지 말고 우아하게 나를 지키는 법 (이미지 관리 끝판왕) | #2 | 오프라 윈프리 Oprah Winfrey
https://youtu.be/pWrFpKMh0JI
2 일.  자신을 가꾸고 돌봐야 한다.

1. 이타심과 이기심 : 내가 가진 것만 줄수 있다.
: 너의 힘의 기반이 어디 있는지, 너의  개성(personality)에 집중해서 세상에 무엇을 할수 있을지 고민해야 한다. 
: 자신을 가득채워야 한다. 스스로 존중해야 한다. 그 시작에는 이타심이 없어야 자신을, 온전한 자아를 세상에 제공할 수 있다. 
: 타인에게 묻는 것은 어떻게 기대에 부합할수 있는지 알고싶기 때문이다. 
: 내가 지금 여기 있는것 자체가 기적이고 영광(honor)스러워 하는것. 

2. 세상에 실수라는 것이 없습니다.
꺼름직한 기분은 방향을 바꾸라는 이야기, 스스로에게 방향을 물어볼 것
내가 충만하게 넘쳐야 타인에게 줄 수가 있다 자신을 가꾸고 돌봐야 한다. 지금 현재 존재한다는 것난 이 세상에 꼭 필요한 존재야
어린 자신에게 해주고 싶은말은?
긴장을 푸세요. 안심하세요. 괜찮을 것에요
이 도전을 이겨내는 방법은 가만히 앉아서 자신에게 묻는것.
다음 올바른 움직임은 무엇인가.

나는 나를 존중하며 세상에 진정한 내 자신을 보여줄 것이다

저서 : 당신에게 무슨 일이 있었나요. 
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=293199922

지금까지 산 것처럼 앞으로도 살건가요?

처음에 봤었을 때와 지금 성장한 후 봤을 때 가장 차이가 큰 영상이다.

"자신을 가꾸고 돌봐야 한다. "란 말이 나에게 그렇게 도 먼 이야기 었나보다. 난 분명히 몇번이나 들었지만 내 귀에 들리지 않았다. 안다고 생각했었으니까. 내가 멋지다고 생각하는 사람들이 공통으로 말한 것이 있는데 그것은 상을 받은 것보다 본연의 일을 지속 할 수 있는 데 도움이 될것같아 기쁘다는 내용이었다. 지금 사는 대로 계속 사는 것이 상으로 느껴 진다면 그것이 잘 살고 있는 삶인 것 같다.   

나는 나 자신을 가꾸고 돌보고 가득 채운다. 내가 지금 여기 있는 것 자체가 영광스러운 일이다. 
 
무의식 최고 경지 엘리트가 밤에 '이걸' 12번 외치는 이유 | #3 | 나폴레온 힐 Napoleon Hill
https://youtu.be/_MFy740fcaM
3 일.나의 잠재의식에 꿈의 목적지
스스로 가치를 매긴다.

적으세요. 첫 장은 인생 가장 큰 꿈에 대한 묘사 둘째 장 감사의 대가로 세상에 나누고 싶은 것 셋째 장 암기 매일 12번 반복 축복에 대한 감사

나의 잠재의식에 꿈의 목적지를 반복해서 새긴다면 그것은 반드시 현실이 됩니다

저서 : 생각하라 그리고 부자가 되어라 
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=259692098
내 인생의 가장 큰 꿈은 내가 하는 사업으로 지방 지역 경제를 유지할 수 있게 기여하는 것이다. 이유는 알 수 없지만 한 섬이 있고 그 섬 전체를 총괄하는 사업을 하는 이미지가 내 머릿속에 항상 그려져 있었다. 정말 할 수 있는 건지 가능 한 건지 왜 생각이 나는지 도무지 알 수가 없다.  단순 하게 생각해도 사업 적으로 이점이 별로 안 보이는데 말이다. 그걸 이루려면 완전히 다른 차원의 어떤 사업을 내가 만든다는 뜻이고, 지구 수면이 올라가는 시점에서 이보다 더 큰 위험성이 올라가는 사업이 있을까? 
 잠깐의 공상. 

지구에 도움이 되는 사업체를 운영한다. 동시에 나에게는 시간이 많아 가족과도 많은 시간을 보낸다.  그리고 계속 공부를 하면서 새로운 사업을 만든다. 내가 운영하는 사업체 건물을 소유하고 있다. 3층은 사무실로 쓰고 있고, 1층은 재활용과 관련된 매장이 운영되고 있다. 일회용품을 쓰지 않는 마트와 그 외 "자연 진화" 제품을 팔고 있다. 3시간 정도 내 업무를 하고 나면 집에서 아이들과 놀 수 있다.  

내가 세상에 나누고 싶은 것은 기본적인 지식이다. 나를 사랑하는 법 사람들과 같이 사는 법. 이 부분에 막대한 돈을 써서 알게 된 나는 이 부분이 세상의 가장 큰 불공평이라고 생각했다. 이건 시작의 문제가 아니라 성장 동력의 문제였기 때문에. 엄청난 빈부격차인 것이다. 그리고 집이 필요한 미혼모 가정에게, 가정 폭력 피해자들에게 집을 제공하는 기여를 하고 싶다. 
몸의 파동을 바꾸면 돈이 찾아오는 과학적인 이유 | #4 | 카일 시즈 Kyle Cease
https://youtu.be/N4rzvuu-rzs
4 일. 집착한다는 것은 그것을 두려워 하는 것처럼 해석된다.

받는 진동으로 살것. 
자신에게 집중할것

과거의 렌즈로 보지 말 것. 

1. 나는 충분합니다. 
나는 목적이다. 


나의 엄청난 풍요로움에 나는 감사합니다.


저서 : 
The Illusion of Money
http://www.yes24.com/Product/Goods/78909370
 나는 완전하다는 말의 해석에 대해 대화를 나눈적이 있었다.  그분은 완벽한건 버려야 한다고  했고, 나는 그건 약간 다른위치라고 했었다. 
어렴풋이 알고 있었지만 정확하게 알고 있지는 못했다.

나는 충분합니다.  
그 충분함은 바로지금 현재 내가 있는 이 공간에 집중하는것으로 설명할수 있는 것이라고 한다. 

알아차림을 온전히 할수 있는 비료가 나는 충분하다라는 생각인것 같다. 

늙어서 후회하지 않으려면 지금부터 ‘이걸’하세요 | #5 | 리사 니콜스 Lisa Nichols
https://youtu.be/IMiFksbImkw
5 일. 지금 나는 모든 결정의 결과, 결정을 업그레이드하면된다.

풍요는 넘처흐르는 것. 

1. 마인드셋
: 과거의 생각을 단철하고 책을 읽음 성공하는 사람들의 7가지 생각. 
지금의 나는 모든 생각의 결과. 


나의 모든 결정들은 나를 최고의 삶으로 이끕니다.

저서 :
마음근육
http://www.yes24.com/Product/Goods/3851865
 나의 모든 결정을 업그레이드 한다. 

내가 매일 모든 결정을 업그레이드 한다면. 그게 더 나은 삶일 것이다. 

그게 더 잘사는 방법. 맞는 것같다. 

성공하는 사람들의 7가지 습관 by 스티븐 코비
http://www.yes24.com/Product/Goods/39114584

1. 자신의 삶을 주도하라. 
- 자극과 반응 사이에는 선택할수 있는 자유가 있다. 
2. 끝을 생각하며 시작하라. 
- 자기사명서. 
3. 소중한 것을 먼저하라. 
- 긴급하고 중요한 것을 먼저하라. 
4. WIN-WIN을 생각하라. 
5. 먼저 이해하고 다음에 이해시켜라. 
- 공감의 경청 후 원하는 바를 말해야 한다. 
6. 시너지를 내라. 
- 촉매제는 신뢰 . 
7. 끊임없이 쇄신하라. 
- 신체적, 영적, 정신적(지적), 사회적(감정적)
당신이 끌어당김의 법칙으로 인생이 바뀌지 않는 이유 | #6 | 멜 로빈스 Mel Robbins
https://youtu.be/jpOV1swiMKI
6 일.중간 단계 시각화- 저항 근육 키우기 - 힘들때 대비, 간극 좁히기

비전보드 : 큰꿈, 결과만 생각하고 간극에 집중하기 쉽다. 

목표와 현실의 간극을 위해  중간 단계 시각화가 필요하다. 특히 불편한 상황 체력이 떨어지고 힘들 때를 시각화 한다. 그 단계를 넘어가는 방법을 시각화 한다.  역경, 반대하는 사람들 결과를 위한 모든 과정을 시각화 한다.

나는 내가 어떤 상황에 있더라도, 내가 원하는 가장 이상적인 모습을 이끌어 낼 수 있음에 감사합니다.
이게 매일 시각화가 필요한 이유일 것이다. 
돈이 바닥에 나면 일을 찾아 일을 하면된다. 그만이다. 그렇게 되더라도 나는 도전을 했고 그만큼 성공에 가까워졌을 꺼니까. 

힘든일이 와도 계속 원하는 일을 하는 시각화를 하는것. 
그 단계를 넘어가는 방법은 무엇일까. 

무슨일이 있어도 내가 원하는 것을 계속 만든다. 
역경과 - 액션프랜. 


매일 자기 전에 하면 성공 확률이 높아진다는 ‘이것’ | #7 | 오프라윈프리 Oprah Winfrey
https://youtu.be/p2k1OcSRotU
7 일. 오늘 한 다섯까지와 앞으로 일어날 다섯가지에대한 감사일기를 써라
1. 실패를 지혜로바꾸세요. 실패는 하느님이 잘못된 방향으로 가고있다고 알려주는 것과같다 실패는 경험일뿐이다
2. 오늘 한 다섯까지와 앞으로 일어날 다섯가지에대한 감사일기를 써라 지금 감사하면 감사함이 온다 3. 가장 원대한 기회를 그리세요. 믿는대로 됩니다 4. 본인의 힘을 근원에 연결한다면 여러분은 모든 일이 가능합니다.

나는 감사를 통해 어떤 상황도 바꿀 수 있습니다
 
성공한 부자 중 상위 5%는 ‘단 1가지’가 달랐습니다. | #8 | 게리 베이너척 Gary Vaynerchuk
https://youtu.be/K2NL3OykjG4
8 일. 성공과 행복의 핵심은 단순함
너무 많은 사람들이 외부의 평가에 너무 중독되어있다
타인을 괴롭히지만 않고 도전해라

내 인생의 성공과 행복의 핵심은 단순함 입니다.
 
과학적으로 증명된, 1분 투자해서 생산성 25% 높이는 방법 | #9 | 브라이언 트레이시 Brian Tracy
https://youtu.be/gnbyAfEqSiw
9 일. 싱글 핸들링: 해야할일을 목록화하고 우선순위를 매겨 하나씩하는것
1. 1분 계획이 10분의 수행시간을 절약 >>전날 다음날할일을 노트에 적으세요
2. 우선순위를 정하세요.
3. 할일의 목록중 가장 중요한 것부터 끝내세요 >>싱글 핸들링: 해야할일을 목록화하고 우선순위를 매겨 하나씩하는것

나는 매일 싱글 핸들링으로 생산성을 향상시킵니다.
 
진짜 돈버는 방법을 알게된 사람들은 '이걸' 해본 사람입니다.| #10 | 밥 프록터 Bob Proctor
https://youtu.be/4AwdDBlQrjs
10 일. 시장의 요구를 따라라. 주변에 묻지 말고 잘하고 있는 사람에게 물어라
시장의 요구를 따라라. 주변에 묻지 말고 잘하고 있는 사람에게 물어라

나는 지혜롭게 배우며 다양한 경로를 통해 큰 부를 이루어 낼 것이다
 
뇌와 언어 프로그래밍을 이렇게 바꾸면 돈이 찾아옵니다. | #11 | 론다 번 Rhonda Byrne
https://youtu.be/DqBUvDJ1rm0
11일.  잘못된 신념을 놓아줄 때마다 자유를 느낄 것이다.
신념이 현실이 된다. 잘못된 신념을 놓아줄 때마다 자유를 느낄 것이다. 의심과 불확실성을 제거한다면?

나는 나 자신을 믿고, 목표를 이루기 위해 지금 바로 행동할 것입니다.
 
지구의 무한한 자원을 제대로 활용할 수 있는 비밀 | #12 | 짐 퀵 Jim Kwik
https://youtu.be/oKlddfaUNY4
12일. 질문을 해라
책 무한한 모델 어떻게 똑똑해 질 것인가
지식+행동 =힘
1. 어떻게 사용 할 것인가 노트 필기를 하세요. 왼쪽은 정보 오른쪽은 자기 생각
2. 감정 이해 -왜 이것을 사용해야 하는가? 에너지와 추진력을 얻으세요
3. 언제 내가 이것을 사용할 것인가?

나의 계획 생산성과 연관 정신 근육을 키우고 생산성을 높여 많은 목표를 달성해라 나는 내가 읽고 쓰는 모든 것들을 반드시 적용하고 실행합니다.
 
'끌어당김'외에도 부자가 되기 위해 당장 시작할 수 있는 ‘이것’ | #13 | 레온 하워드 Wallstreet Trapper
https://youtu.be/CeJLGrUVjKA
13 일. 당신이 편안해진 곳이 평균
두려움 = 드디어 평균적인 현실을 벗어난다
당신이 편안해진 곳이 평균이 된다 힘 , 배움, 교육의 관계를 이해해야 한다

나는 항상 배우며 지속적으로 성장하고 있습니다.
 
메타버스의 '이것' 이 영상만 봐도 완전히 이해할 수 있습니다. | #14 | 마크 저커버그 Mark Zuckerberg
https://youtu.be/pxqHRp57Wgw
14일.  미래를 그리고 만드는것
메타버스 - 몸소 체험 할 수 있게 해줌. 
기술이 우리를 더 잘 표현하고 세상을 더 풍성하게 경험할 힘을 주었다. 
텍스트 > 사진 > 비디오   , 데스크톱 > 웹 > 스마트폰
저희는(마크저커버그)는 메타버스가 모바일 인터넷의 후계자가 될 것이라고 믿습니다 
제품을 만드는 것으로는 부족하다.  생태계를 만드는 것 또한 도와야 한다. 

나는 변화하는 세상의 속도에 맞추어 빠르게 도전하고 성장합니다. 
 
워렌버핏의 숨은 멘토가 전하는 인생 조언 (Feat.세계 시총 9위 회사 부회장) | #15 | 찰리 뭉거 Charlie Munger
https://youtu.be/N7xluj-TFQQ
15 일. 소비를 통제하고 단순하게 사는 것
모차르트의 불행
1. 모차르트는 본인의 수입보다 훨씬 더 많은 돈을 소비했다. 
2. 모차르트는 질투와 원망만 하며 살았다. 
모든 사람이 모든 것을 배울 수는 없다.  
행동하세요. 드문 기회가 다가왔을 때 놓치지 마세요. 
소비를 통제하고 단순하게 사는 것이 부자의 비밀이다. 
우리는 항상 수입보다 적게 쓰고 투자했다. 그런 다음 오래 살면, 바로 부자가 된다. 
어려운 일들을 잘 피하고 쉬운 일들을 찾아냈기에 성공했다. 

나는 내게 다가온 일생의 기회를 잡을 수 있는 사람입니다. 
 
행동과 생각을 딱 ‘한 가지’씩만 바꿔도 인생이 획기적으로 변합니다. | #16 | Tony Robbins 토니라빈스
https://youtu.be/28fevcOOW1Y
16일. 파워포지션을 하고 자랑스러워 하는 순간을 집중하세요. 
예전부터 하던 걸 똑같이 해서는 새로운 결과를 얻지 못한다는 것을 우리 모두는 알고 있다. 
사람이 변화하지 않는 이유는 걱정하면서 새로운 행동을 하지 않게 되기 때문이다. 
결과 바꾸기 < 행동 바꾸기 < 감정 상태 바꾸기

감정상태 바꾸기
1. "파워포지션"- 몸 상태를 바꾼다. 
- 어깨를 쭉 펴고, 호흡 패턴을 바꾸고, 더 빠른 제스처를 취하고, 더 빨리 말하면, ... 우린 근본적으로 다른 행동을 취하게 됩니다. (어깨 펴고 손은 허리 위에 2분 동안 숨을 깊게 쉰다.  )
2. 당신이 자랑스러워 하는 그 순간에 집중하세요. 
당신의 인생에서 당신이 자랑스러워하는 것은 무엇입니까. 
자랑스러울 때 숨을 어떻게 쉬나요? 미소 짓고 환호하세요 .

나는 오늘도 나의 몸과 마음에 긍정 파워가 넘쳐 남에 감사합니다. 
 
이미 성공한 사람도, 남몰래 ‘이걸’ 공부합니다. |#17 | 조던 피더슨 Jordan B. Peterson
https://youtu.be/kEH0KUHfjg0
17 일.
글 쓰는 법을 배우면 생각을 전달하기 위한 사고력과 커뮤니케이션을 잘 할 수 있게 된다. 
무언가를 계속 읽고 계속 써라. 
무슨 일이 일어났는지 전달해야 하고, 왜 그 일이 일어났는지 에 대해서도 소통해야 한다. 

글을 쓰는 능력과 소통하는 능력의 가장 기본은 독서 
독서를 하면서 훌륭한 사람들의 생각과 표현방식을 먹어버리고,
나의 이야기에 적용하며 나의 커뮤니케이션 능력을 높여보세요. 
(캘리)

나는 독서에 대한 맹렬한 열정을 키우고, 이미 알고 있는 지식에 새로운 정보를 덧붙입니다. 
 
기존의 학교가 제 생각과 달라서 제가 학교를 만들었습니다.| #18 | 일론 머스크 Elon Musk
https://youtu.be/Nh2dq02r08A
18 일.  문제해결 능력 문제 자체를 가르치는것이 중요하다.
학교를 만든 이유. 
첫째, 학생들의 적성과 재능에 맞춘 교육이 필요하다. 
둘째, 문제해결 능력 문제 자체를 가르치는 것이 중요하다. 
엔진 작동방식
예전 : 드라이버, 렌치 사용법을 알려줌. 
원하는것 : 엔진을 열려고 하는데 뭐가 필요할까? 드라이버가 필요한거야 그게 드라이버 용도야. 도구의 관련성이 명백해진다. 

나는 배움을 통해 문제해결 능력을 키울 수 있습니다. 
 
빈부격차가 심각해지는 미래에 부의 추월차선을 타는 방법 | #19 | 패트릭 벳 데이비드 Patrick Bet-David
https://youtu.be/6_8dw6qhGLA
19 일. 부자들은 돈을 벌 준비가 되어있다.
부자들은 준비되어 있다. Money always flows to those who have the money magnet
3단계 공식
첫째, 당신이 어떤 속도로 가고 싶은가?
- 하루에 몇 시간? 일주일에 몇일?
둘째, 얼마 동안 그 속도를 유지하겠는가?
- 1년, 2년?
셋째, 집중 노력. 
-  시작은, 항상 무언가를 판매해야 한다는 것이고, 
   그다음은 인재 영입, 그 다음 성장, 그 다음 돈을 쌓는 것. 
최악의 100일
> 그 날이 실패하는 날이며 성공하는 날이다. 
시장의 40% 새로 찍은 돈. 그 돈이 어디로 가는가?
-가난한 사람은 가난해지고 부자는 더욱 부자가 중간 층의 준비된 사람은 더 부유해졌다. 

나는 계획을 세우고 매일 성장함으로써 내가 원하는 만큼의 부를 쌓을 것입니다. 
 
지금 당장 인간관계가 쉬워지는 1가지 방법 | #20 | 줄리엔 블랑 Julien Blanc
https://youtu.be/o1AetZBd0Ws
20 일 인간관계 모두가 당신을 좋아한다고 생각하세요. 당신의 진짜 모습을 보여주세요. 
 1. 진실성 : 당신이 세상에서 그 누구보다 잘할 수 있는 것은 나 답게 행동하는 것. 
가치를 높이는 것은 나 다움을 점점 알아가는 과정.  내가 누구인지, 어떤 바이브(분위기, 낌새, 느낌)를 가졌는지. 
2. 사회적 지능 
우정, 연애, 비즈니스에서 기초적인 사회적 지능이 없는 사람을 만난다.  그 사람을 신뢰하거나 의지할 수 있을까요?
3. 압박을 견디면서 여전히 있는 그대로의 모습을 보여주는 사람이 가장 큰 가치를 가진 사람이다
이 사람은 스스로가 단단한 사람이구나. 
4. 가치를 이용해서 소통. "프레임"
프레임은 세상을 바라보는 방식. 
진짜 강한 프레임은 자신에 대해 숙달하는 것으로 시작됩니다.
인정이나 동의 받고 싶어하는 태도를 근절하는 것이 시작.  
누군가를 만날 때, 모두가 당신의 편이며 당신을 좋아한다고 생각하세요. 아무것도 증명할 필요도 없어요. 경계하지 마세요. 당신의 진짜 모습을 보여주세요. 그 모습과 현실만 신경 쓰세요. 
상대방에게 이미지를 투영하지 마세요. 

나는 높은 가치를 제공하며 모든 인간관계를 성공적으로 형성합니다. 
 
남은 인생을 충만하게 살고 싶다면 반드시 봐야하는 레전드 영상 | #21 | 스티브 잡스 Steve Jobs
https://youtu.be/SHqC0aL9TIs
21 일.
Stay hungry. Stay foolish.  바보처럼 불가능에 도전하라. 
매일을 마지막처럼 산다면, 어느날에는 당신은 가장 옳은 사람이 될 것이다. 
오늘이 내 인생의 마지막 날이라면, 오늘 내가 하려고 하는 일을 하고 싶을까?
You are already naked. 이미 잃을 것이 없습니다. 
죽은은 최고의 발명품이다.  죽음은 새로운 것을 위해 길을 터주고, 오래된 것을 소멸시킨다. 
다른 사람들의 삶을 사느라 시간을 쓰지 마세요. 
지구대백과 최종화. Stay hungry. Stay foolish.  바보처럼 불가능에 도전하라. 

나는 늘 갈망하는 마음으로 불가능해 보이는 꿈에 도전합니다. 
 
안 보면 손해인 새로운 자산 NFT의 모든 것. l #22 l 맥스 마허 Max Maher l
https://youtu.be/vLaMpj4nQ94
22 일. 변화(NFT) 와 투자
NFT : Non Fungible Token. 대체 불가능한 토큰
Fungible :  가장 대표적인 예는 현금. 같은가치 교환가능
non-fungible : 대체불가능 , 다른 자산과 동일하게 대체될수 없는 자산.  예는 부동산, 예술품
토큰 : 블록 체인에 저장된 디지털 인증서.  암호화폐가 공공거래장부에 저장되는 것과 똑같은 방식. 
구입이유 : 1. 검증가능한 소유권, 2. 수집(컬렉션) 3. 사회적 지위
리스크는 크다. 

나는 세상의 혁신적인 변화를 깨닫고 미래를 대비합니다. 
 
‘Carpe diem(현재를 살아라)’의 진정한 의미 l #23 l 엘렌 랭어 Ellen Langer l
https://youtu.be/fwoKa0E0CL0
23 일.  선택권 : Mindfulness(마음챙김)
 
세상은 계속 변하고 시각도 계속 변한다. 
선택권을 가지고 있다는 것은 Mindfulness(마음챙김) 와 관련있는것으로 보인다. 
이 선택권은 건강, 행복, 자신감을 통제하는데 있어 매우 강력하다. <-> Mindlessness(마음놓침) : 생각 없이 자동적으로 행동. 
새로운 것을 알아차리는 행위가 참여의 느낌으로 이어짐. 
마음 챙김 상태가 증가하면 자신감, 행복, 건강, 수명이 증가한다. 
책 : 마음의시계-시간을 거꾸로 돌리는 매혹적인 심리실험. 

중요한 결과에 스스로 영향력을 끼칠 수 있다는 믿음, 완벽하게 예측 할수 없다는 것을 알아야. 
불확실성의 힘을 인식하고 통제가 아닌 이용을해야한다. 
우리의 통제권은 과거에 발생한 사건에 대해 대응하고 행동하는 방식 뿐. 
우리가 해야 할 일은 스스로 생각하는 것보다 더 유능하다는것을 깨닫는것. 

나는 현재를 알아차림으로써 행운과 기회를 잡을 수 있는 사람입니다. 
 
복잡한 모닝 루틴, 심플하게 정리 해 드립니다. | #24 | 루이스 하우스 Lewis Howes
https://youtu.be/I_cVUGVNYjM
24 일. 완벽한 아침루틴 
1. 7~8시간 수면 후 아침맞기 
2. 침대 정리하기 
3. 몸을 움직이기-자신감, 힘, 정화 
4. 명상- 정화, 생각정리, 감사함 
5. 나의 비전은 무엇인가. 그것을 위해 오늘 할일은 무엇인가? 나의 비전을 위해 오늘 아니요/예 라고 말할수 있는가. 비전, 사명, 목표, 의도를 통제한다. 

나는 감사한 마음으로 행복하고 건강하며 성취감과 사명감이있고 목적 지향적인 삶을 살고 있습니다.
 
끌어당김 법칙이 이루어지지 않는 분은 반드시 보세요 | #25 | 삿구루 Sadhguru
https://youtu.be/P1T5M2wErwQ
25 일.  매 순간 마음이 방향을 바꾸고 있다는게 문제다. 
전체 시스템(육체, 감정, 정신, 에너지)을 한 방향으로 조직하면 원하는 것을 모두 이룰 수 있다. 
그렇지 않으면 자기파괴적이 될 수 있다. 
만약 불행하다면 원하는 대로 인생이 진행되지 않기때문. 
생각대로 흘러간다면 행복하다.  그러기 위해 얼마나 집중했는가, 안정성이 있는가 울림이 있는가. 질문해보라. 

나는 인생의 근본적인 법칙을 통해 새로운 미래를 창조합니다. 
 
새해 목표를 세운 당신에게 드리는 선물 | # 26 | 밥 프록터 Bob Proctor
https://youtu.be/kueY0MfdCRo
26 일.  주파수를 높이고(한가지에 집중) 자기가 되고싶은 사람처럼 생각, 과거를 차단
한가지에 집중할 때 높은 주파수에 있게된다. 
미국 케네디 대통령의 결정 : 우리는 10년 안에 달에 가서 다른것을 하기로 선택합니다. 그것이 쉽기 때문이 아니라 그들은 어렵기 때문입니다. 
현재 결과가 반복되게 두고 있고 그게 현재 계속되는 결과.
상위능력 - 의지, 확고한 결정. 
주파수를 높이고 자기가 되고싶은 사람처럼 생각하고 과거를 차단하고 현실을 맛보게 된다. 
원하는 대로 가세요. 확실히 가치가 있습니다. 

내가 목표를 향해 움직이면, 목표도 나를 향해 움직인다.
 
백만장자에게만 있는 사고 방식과 생활 방식을 알려드립니다.ㅣ#27ㅣ크리스 호건 Chris Hoganㅣ
https://youtu.be/hdwedlrtkCM
27 일.  100만장자의 97%는 자신의 운명을 스스로 통제한다고 생각(남탓X)
부자가 되려면 사고방식(mindset)이 중요합니다. 
100만장자의 97%는 자신의 운명을 스스로 통제한다고 생각합니다. 
무언가 성취를 못 했을 때, 방해가 될 때면 남을 탓하고 싶어진다. 
100만장자의 94%는 버는 것보다 적게 쓰며 삽니다. 
빛의 이자는 패널티고 투자의 이자는 보상이다. 
부채에서 벗어나 자신에게 보상하기 위해 돈을 투자하고 성장하라. 
반복되는 실수는 실수가 아니라 선택이다. 

우리삶에는 4명의 사람이 필요하다. 
멘토 - 성공자이며 가이드 해 줄 수 있는 사람. 
코치 - 독려해줄 사람. 목표 달성까지 귀찮게 하며 추진하는 사람.
치어리더 - 지지자. 믿어주는 사람. 지금까지와 상관없이 믿어줌. 
친구 - 생각을 모두 솔직하게 털어놓을 수 있는 사람. 솔직하게 대해도 원망하지 않는 친구. 
이 4명의 사람을 찾는 것 뿐만 아니라 그 네사람중 한명이 되어주는 것이 중요하다.  
혼란을 겪는 것만으로도 전달자(messenger)가 될수 있다. 
혼란을 겪으면서 배우기 때문이다. 인생은 혼자살지 않는다. 

사람들이 할수없다고 말하는 것에 대해 신경쓰자 마세요. 
마음이 가는것이 무엇이 있는가 그것을 시작하라. 

하지 말아야 할것을 분명하게 하라. 불필요한 위험을 감수하기 위해. 
1. 빚을 지지 않는다. 

나는 내 자신에게 보상하기 위해 돈을 투자하고 성장시킵니다. 
 
믿기지 않을 성장의 법칙은 매우 간단합니다. l #28 l 워런 버핏 Warren Buffett l
https://youtu.be/lDIVwkkw33g

28 일. 우리보다 모범이 되는 사람을 찾으라
중요한 것은 세계 최초로 최고의 비즈니스 아이디어를 얻었는지 여부가 아니다. 
중요한건 고객에게 무엇을 제공할 수 있는지, 동료들에게 특별이 무엇을 가져올수 있는지, 스스로 배우는 것이다. 
그렇게 하려면 날마다 고객을 기쁘게 하고 싶은 진정한 열망이 중요하다는 교육이 필요합니다.  고객을 기쁘게 하고 성공하지 못한 기업은 단한번도 본적이 없습니다. 
자신이 정당한 대우를 받고 있지 않다거나 자신의 견해가 적절하게 고려되지 않는다고 느끼는 사람들을 통해 일을 할수는 없습니다. 그래서 우리는 다른 사람들을 통해 자신을 확장시키는 방법을 반드시 배워야 한다.

나보다 더 나은 사람들과 어울리는 것이 중요하다. 
우리가 어울리는 사람들의 방향으로 움직일 것이기 때문이다. 우리가 더 잘 행동한다면, 우리의 인생도 잘 될것이다. 
우리보다 모범이 되는 사람을 찾으라. 스스로 축소해서 맞춰야 할 것같은 사람들 말고.

나는 더 긍정적이고 미래 지향적이며 성장하려는 사람들과 함께 성장합니다. 
 
부자 아빠가 우리에게 알려주는 현실적인 조언 | #29 | 로버트 기요사키 Robert Kiyosaki
https://youtu.be/9HPHDL-SqqA

29 일. 돈을 더 벌려면  수입을 늘리기, 보유한 돈을 더 효율적으로 소비
절대적인 관습을 깰 수 있어야 한다. 
돈을 더 벌고 싶으면, 더 저축하고 더 열심히 일해라. 
>> 허리띠를 졸라매라 X
>> 수입을 늘리기, 보유한 돈을 더 효율적으로 소비.(절세)

나는 돈에 대해 꾸준하게 공부함으로써 부의 그릇을 확장합니다. 
 
타인에게 ‘이것’을 제공하면, 성공은 자연스레 따라옵니다. | #30 | 댄 록 Dan Lok
https://youtu.be/n5P-h2iiNvE
30 일. 상대방에게 무언가를 요구하기 전에, 먼저 상대에게 가치있는것을 준다
13개의 사업을 실패했다. 제가 말하는"성공"하기 전에
상대방에게 무언가를 요구하기 전에, 먼저 상대에게 가치있는것을 준다. 
사업철학은 어떻게 하면 상대가 하는 일에 내가 가치를 더할수 있는지 생각하는것. 
당신이 하고 있는 일중에 가치를 더 할수있는 가장 중요한 프로젝트는 무엇인가?
대부분의 사람들은 성공의 측면에서 자신의 역할을 과대평가한다. 
기회(수단)를 찾는것이 10배는 더 중요하다. 
먼저 적절한 사람이 되어야한다. 그리고 적절한 시기에, 적절한 장소에 있어야 한다. 

나는 끊임없이 미래를 공부하며 시대애 맞는 산업을 익히고 활용하여 부를 창출할 것입니다. 
 
생산성을 높이고 싶나요? 당장 실천해보세요. | #31 | 로빈 샤르마 Robin Sharma
https://youtu.be/ni_L-ceZ_z0
31 일.  90일 동안 업무를 시작하고 가장 첫 90분을 종사하고 있는 업계에 큰 획을 그을 수 있을 만한 딱 한가지(1) 중요한 기회에 투자하십시오. 
생산성을 100배 높이는 방법. 
1. 산만함에 중독되면 창의적인 작품은 결코 탄생할 수 없다. 
2. 우리는 타고난 지능보다 집중력이 더 가치있는 세상에 살고 있다. 

5%의 성과를 내고 싶다면 5%의 사람들처럼 생각하고 생산하고 행동해야 합니다. 창의성, 생산성 에 집중하는 사람은 최고의 시간을 산만함에 중독된채 흘려보내지 않습니다. 

1.  THE 90/90/1 RULE : 내일부터 다음 90일 동안 업무를 시작하고 가장 첫 90분을 종사하고 있는 업계에 큰 획을 그을 수 있을 만한 딱 한가지(1) 중요한 기회에 투자하십시오. 
2.  완전몰입 보호막 : 중요한 시간동안 타인이 당산에게 접근하기 어렵도록 셋팅. 
3.  또래 집단을 신중하게 선택하라 : 행동개선의 가장 좋은 방법은 도달하고 싶은 수준에 이미 도달한 또래 집단이나 커뮤니티와 어울리는것. 무의식적으로 대부분의 시간을 함께 보내는 사람들의 행동을 따라한다. 
창의적인날 - 전자기기를 사용하지 않는날. 최고의 결과를 만들어내고 최고의 아이디어를 얻을 수 있는 공간으로 활용
감정전염 : 피해자 주변에 있으면 피해자처럼 행동. 
4. 학습된 미니멀리즘 : 천재성의 비결은 복잡성이 아니라 단순함에 있다. 
최고 생산성의 비결 중 하나는 소수의 영역에서 세계 정상이 되는것에 초집중하는것. 
일상에서 소수의 우선순위에 반드시 집중하십시오. 

나는 우선순위를 정하여 목표에 집중할 능력이 있습니다. 
 
본인을 사랑하지 못하는 당신에게 드리는 가장 쉬운 실천 방법ㅣ#32ㅣ 멜로빈스 Mel Robbinsㅣ
https://youtu.be/3nvuuRK-5l4
32 일. 매일 아침 거울속의 자신과 파트너쉽으로 시작하라
모든 인간은 자기파괴적인 습관을 가지고 있다. 
아침에 화장실에서 거울을 볼때 나와 거울속에있는사람 두사람이 있다고 생각해라. 
그 거울속에 사람에겐 응원과 위로가 필요하다. 

나는 나 자신을 있는 그대로를 사랑하고 성장하기 위해 어려움을 추구가하는 멋진 세상 속에서 살고 있습니다. 
 
투자 방법이 고민이세요? 그렇다면 이 영상부터 보세요.ㅣ#33ㅣ워렌 버핏 Warren Buffettㅣ
https://youtu.be/Hke1AfDS0h0
32 일 미래가치가 풍부한 자산에 투자
내재가치 : 세상이 끝나는 날까지 모든 현금을 예측할 수 있는숫자

당신에게 줄 현금은 얼마인가? 
얼마나, 언제 받을 지 얼마나 확실하는지?
이 답을 할수 없다면 안사는게 맞음. 

나는 미래가치가 풍부한 자산에 투자합니다. 
 
일주일의 노력으로 인생을 바꿀 수 있는 과학적인 방법 | #34 | 조 디스펜자 Joe Dispenza
https://youtu.be/wQxBobAgDHA


34 일 아침 시각화, 저녁 감사하기, 틈새 명상
7일동안 새로 만들거나 제거하는 도전
1. 아침에 일어나서 삶의 문제와 과거의 기억 생각
=> 오늘 내가 할수 있는 가장 위대한 나는 무엇일까? 
리허설:실제로 원하는게 이루어졌을때 감정을 느끼며일어나기

 2. 하루의 마무리 시간
=> 삶에 감사하기.  몸에 감사의 감정 알려주기. 

3. 틈새 명상
=> 눈을 감고 주변공간 자각, 인식 >> 스트레스 줄임.

나는 내 삶의 주체로서 내가 원하는 삶을 창조하도록 두뇌 훈련을 반복합니다. 
 
이것’과 사랑에 빠지세요! 그러면 사업은 자연스레 성공합니다. | #35 | 마이클 세이벨 Michael Seibel
https://youtu.be/fmrMvedGdZw

35 일 문제에서 시작하라. 
회사 창업 아이디어가 출충해야 하는 것은 아니다.

1. 내가 이 문제와 개인적으로 관련있는가?
> 진짜 해결책인지 알수 있다. 
>지속력을줌. 

2. 내가 이문제를 해결할 자격이 있는가?
>다른이들은 문제를 이해하지 못하지만 자신은 이해하고있다.
> 문제를 해결하는 자신만의 방법이 있다. 
+ 과거에 해결하려고 했던 사람들을 조사하면됨. 

3. MVP : 최소 기능 제품. Minimum Viable Product
사용자들이 문제를 해결하는 것을 도와줄 초기 제품
초기제품과 사랑에 빠지지 말것. 문제를 해결하지 못할가능성이크다. 형편없이 해결할수도 있다.
빠르게 초기 제품을 만들어라.  
> 해결하고자 하는 문제와 사랑에 빠져라. 
> 고객과 사랑에 빠져라. 
> 제품은 언제든 변경가능한 요소. 

나는 문제를 해결하는 아이디어를 통해 나 자신과 세상을 이롭게 합니다. 
 
728x90

참고서적 :

DBMS 아키텍처 부분 : DB 성능 최적화를 위한  SQL 실전가이드 SQL 레벨업 미크 지음, 윤인성 옮김 

DBMS 기본 : 김상형의 SQL 정복

 

SQL 관련 커뮤니티 : http://www.gurubee.net/

 

꿈꾸는 개발자, DBA 커뮤니티 구루비

꿈꾸는 개발자, DBA 커뮤니티 구루비

www.gurubee.net

 

http://www.yes24.com/Product/Goods/22744867

 

SQL 첫걸음 - YES24

왕초보를 위한 정말 쉬운 SQL 입문서를 만나보자!본격적인 빅데이터 시대에 접어들면서 기존 대비 더 효율적이고 폭넓은 데이터 분석을 위한 수요가 커질 것으로 기대되는 가운데, SQL 활용 범위

www.yes24.com

 

 

SQL 기초
데이터 컴퓨터 안에 기록되어 있는 숫자. 
데이터베이스 데이터의 집합, 컴퓨터 안에 기록된 모든것
- 계층형 데이터 베이스  ;  역사가 오래된 DBMS ex) 파일 시스템 , 현재 DBMS로 채택되는 경우는 많지 않음. 
- 관계형 데이터 베이스 : 관계대수라는 것에 착안하여 고안한 데이터 베이스. 
- 객체지향 데이터 베이스 : JAVA, C++  가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는것. 
- XML 데이터베이스 :  XMl 형식으로 데이터 저장, XQuery라는 전용 명령어 사용. 
- 키-밸류 스토어 KVS :  NoSQL 이라는 슬로건으로부터 생겨난 데이터 베이스. 열지향 데이터베이스.
                                     ex) 연상배열(=결합성배열 =맵= 딕셔너리),  해시 테이블. 
DBMS Database Managemet System
생산성, 기능성, 신뢰성
SQL  IBM 개발한 SEQUEL 관계형 데이터베이스 조작용 언어를 기반으로 만들어짐. 

DML : Data Manipulation Language 데이터 추가, 삭제, 갱신
DDL : Data Definition Language  데이터 정의, 데이터베이스 객체를 만들거나 삭제
DCL : Data Control Language : 트랜젝션 제어어 외 
데이터베이스 제품 Oracle
DB2 : IBM
SQL SERVER
PostgreSQL
MySQL
SQLite

SQL 방언존재
데이터베이스 서버 클라이언트/서버모델. 
테이블 구조 DESC 테이블명;   
자료형
INTEGER 형
CHAR 형
VARCHAR형   * 고정과 가변형
DATE형
TIME 형

검색조건 select
where  "=" "<>"
문자열상수 리터럴 : 자료형에 맞게 표기된 상수값.  ex) 'ABC'
ISNULL
비교연산자

AND, OR, NOT  : OR 보다 AND 가 우선순위가 높음. 
LIKE   :
메타문자
'%', : 문자가 없거나 하나 이상의 어떤값이 와도 됨.
'_'   : 하나의 문자에  어떤값이 와도 됨. 
'\' : 이스캐이프 처리. 
'''' : 이스케이프 처리.    " ' " 문자는 2개 연속기술.   

Order by  : Null 은 가장 작은 값 취급 , order by price* quantity desc  << 연산가능. 
desc
asc        : Order by a asc, b desc;
limit   행수  offset 시작행   ex)  limit 3 offset2  앞에 2행 제외하고 3개 
rownum

조회 순서
FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT
수치연산 + - * / % MOD

연산순서
* / % > + -
별명 Alias AS '별명'  : ASCII 문자 이외의 것. 
AS "별명"
Null null +1 , 1+null, 2*null, 1/null   .>> 모두 null 
함수  MOD(10,3)  -> 1
round
truncate

문자열연산 'ABC' || '1234' => 'ABC1234'  
+ : SQL Server
|| : Oracle, DB2, PostgreSQL
CONCAT : Mysql 

Substring
Trim

문자세트 ex) EUC-KR or UTF-8
EUC-KR ASCII 문자1바이트, 한글 2바이트 
UTF-8 ASCII 문자 1바이트 한글 3바이트. 
날짜 연산 SELECT CURRENT_TIMESTAMP;
TO_DATE('2014/01/25', 'YYYY/MM/DD')
SELECT CURRENT_DATE + INTERVAL 1 DAY;
CASE CASE WHEN 조건1 THEN 식1
           [WHEN 조건2 THEN 식2]
           [else 식 3]                              // 생략시 null   처리 주의 
END
           
CASE WHERE 조건1 THEN 값1
           [WHEN 조건2 THEN 값2]
           [else 값3 ]
END

decode (Oracle)

null 체크
NVL (Oracle)
isnull(SQL server)
COALESCE  : 표준SQL
DML insert into 테이블(열...) values( 값...);
null, default
delete from 테이블명 where 조건식. 
update 테이블명 set 열=값  ... where 조건식   ... Oracle은 set순서 상관없고 mysql은 영향있음. 

물리 삭제 : 실제 삭제
논리 삭제 : 삭제 플래그
집계함수 count, sum, avg, min, max,

distinct count(*) 불가. : count 가 먼저 계산됨.  count(distinct name)


WHERE > GROUP BY > HAVING >SELECT > ORDER by
Having : 검색한뒤 그룹화 
cf) having count(name)=1   200쪽부터 보기
   
   

 

DBMS 아키텍처

1. SQL 구문입력  웹 or 애플리케이션 or SQL 인터페이스 -> SQL 구문
2. 상호연계
   (RDBMS)
1. 쿼리 평가엔진 플랜 실행 기능, 파서, 연산평가 기능, 옵티마이저 SQL 구문 분석, 실행계획(어떤순서 기억장치 데이터 접근 결정)
2. 접근 메서드 ->트랜젝션메니저
┿>리커버리 메니저
실행계획에 기반을 둬서 데이터에 접근
3. 버퍼 메니저 ->락메니저 버퍼 용도로 사용하는 메모리 영역 디스크 용량 매니저와 연동작동
4. 디스크 용량 매니저 동시 실행제어 어떻게 데이터를 저장할것인가
  트랜젝션 메니저      각각의 처리 트랜젝션으로 관리
  락메니저     대기시킴
  리커버리 매니저     장애를 대비해 백업, 복구를 수행
3.참조 인덱스파일 -> 데이터 파일  : 시스템 카탈로그  

Trade-off  어느것을 얻으려면 반드시 다른 것을 희생하여야 하는 경제 관계

Query : 질의 좁은의미 select 구문

DBMS 와 버퍼        
기억 장치의 계층 1차 기억장치 
- 레지스트 메모리
2차 기억장치
-HDD, CD, DVD, 플레시메모리
3차 기억장치
테이프
1차일수록 비쌈, 고가, 접근속도 빠름
DBMS 기억장치 하드디스크, 메모리, 버퍼를 활용한 속도 향상
버퍼, 캐시 : 성능향상을 목적으로 데이터 저장 메모리
 cf) 매우 적은 양의 데이터에만 접근하는 SQL 구문은 저장소 I/O  보다 CPU 연산에 많은시간을씀
데이터 캐시 초기값 128MB 버퍼캐시(ORACLE), 버퍼풀(Mysql)
초깃값: 128MB(Mysql)
SELECT 구문에서 버퍼에서 데이터 있으면 그것 사용. 
로그 버퍼 초기값 64KB innodb_log_buffer_size 16777216
초깃값: 8MB(Mysql)
갱신처리(commit)시 로그버퍼에 변경정보 보내고 디스크 변경 >> 성능 보완, 메모리 휘발성 보안
로그        
         

buffer 완충제, 

 

 

RDBMS 레코드
필드
테이블
인덱스

프로시저
함수
제약사항
로, 행, 튜플
컬럼, 열, 어트리뷰트 
릴레이션
키-필드만 갖고 있는 테이블에 대한 동작속도 높여주는 자료구조
여러 테이블, 뷰의 데이터를 조합하여 만듬,  테이블 아닌 테이블처럼 보여줌
프로세스를 절차적으로 기술 CREATE OR REPLACE PROCEDURE
특정 계산 수행, 반드시 리턴값 하나 존재,  CREATE OR REPLACE FUNCTION
무결성 보장하기 위한 데이터베이스 객체중하나. 
무결성 제약조건 데이터 정확성,
일관성
일관성, 정확성 보장위해 저장, 삭제, 수정등을 제약하기 위한 조건. 
개체 무결성 : 기본키는 null, 중복값 불가
참조 무결성 : null 이거나 참조하는 릴레이션 기본키와 동일
도메인 무결성 : 속성값은 정의된 도메인값 ex) 남, 여 만 넣을수있는 조건
고유 무결성: 고유값 조건이 주어지면 같은값 없어야
Null무결성 : not null 조건
키 무결성 : 최소 테이블당 한개 이상의 키 
쿼리문 종류 DDL
DML
DCL
TCL
데이터 정의 어, DB 오브젝트 생성, 삭제 변경 ex) create
데이터 조작 어, DB 조회, 삽입, 삭제, 변경 ex)select
데이터 제어 어, 사용자 권한 관리 ex) grant
트랜젝션 제어어 ex) commit, rollback..
명명규칙 DB
키워드
책마다 기준이 달라서 추후 정리
https://docs.actian.com/ingres/11.0/index.html#page/CharQueryRepUser/Recognition_of_Delimited_Identifiers.htm
타입 INT
DECIMAL
CHAR
VARCHAR
DATE
정수
실수
고정길이 문자열
가변길이 문자열
날짜
CHAR(10) VS VARCHAR(10) abc 작성시 char 는 10바이트를 다쓰고 varchar는 7바이트를 사용. 
단 정확히 10자인 데이터를 저장할 때는 char 가 유리. 
char는 길이기 일정해 속도가 빠르다. 
Number vs int vs uint number
int
uint


64비트, NaN, 소수점까지 표현 oracle 은 int를 number로 선언사용
32비트 정수
unsigned int , 양수만 표현
https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021
SQL 실행순서 From > (join 조건)ON > JOIN >  WHERE >  GROUP BY > HAVING > SELECT 
Having 그룹화 이후 데이터 추출조건
집계함수 sum
avg
min
max
stddev / stdev(ms)
variance
총합
평균
최소값
최댓값
표준편차
분산
truncate table 이름   테이블 전체 비울때 
서브쿼리 연산자 ANY(서브쿼리)
ALL(서브쿼리)
exists(서브쿼리)
하나만 참이어도 
모두 참일때
결과가 있는지만 확인
연관서브쿼리 필드, (서브쿼리) select name , (select id from classA where classA.id = student.id) from student
인라인뷰 from (서브쿼리)  
테이블 뷰 UNION
Intersect
minus
합집합
교집합
차집합
함수 스칼라 함수
집계함수
시스템함수
문자열함수
수학함수
sum, avg, count
널 관련 처리, 타입변환
문자길이, substring, 케이스 변환 
CTE
WITH ()
Common Table Expressions 쿼리 실행중에 메모리에 존재하는 테이블 
with 테이블명(필드명들) as()
over   집계함수 보조. 
select name, sum(salary) over() as 월급총합 from employee;
rank()   select rank() over(order by salary desc), * from  employee
통계 관련 ntile
lag
lead
percentile
pivot
 
     
     

 

   ORACLE SQLServer Mysql
데이터베이스보기 SELECT NAME FROM v$database; SELECT name FROM master.sys.databases show databases;
페이징 관련 의사컬럼(Pseudo column)
: 인위적추가된 컬럼 
ex)rownum, rowid
top, limit  
offset fetch order by 필드 offset 건너뛸 행수 rows fetch next 출력할 행수 rows only 
order by 생략가능
offset 0 rows 생략가능
order by 반드시
offset 0 rows 반드시
limit 가 유사기능
시퀀스 CREATE SEQUENCE emp_seq
       INCREMENT BY 1
       START WITH 1
       MINVALUE 1
       MAXVALUE 9999
       NOCYCLE
       NOCACHE
       NOORDER;
CREATE SEQUENCE Schema.SequenceName AS int START WITH 1 INCREMENT BY 1 ;  
GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ]
AS IDENTITY [ ( identity_options ) ]

ex)
CREATE TABLE STUDENT(
no INT GENERATED AS IDENTITY ​PRIMARY KEY
);​

Number 타입
BigInt CREATE TABLE student(
no INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
숫자 Number

Number(최대자리수, 소수점이하정밀도)

Number(5, -3) 천의자리 반올림

Decimal or Numeric
날짜 SYSDATE

select sysdate + 12 from dual;
GETDATE() NOW()

 

728x90
글자 합치기 combine letters CONCATENATE()    
포멧 변경(날자 포멧 외 ) Format change (other than date format) ctrl 1    
소수점 조정 decimal point adjustment
   
항목없음 no items N/A  or  -1    
드래그 없이 
연속값 채우기
without drag
Fill continuous values

끝까지 드래그 Double-click the dotted area in the selection box

선택칸 점부분 더블클릭
   
전체 열 전체 행전체 선택 Select Entire Column Entire Row ctrl shift 방향키    
단축키 메뉴 활성화  Activate shortcut menu alt 누르면 화면에 단축키 나옴    
값으로 인지 못하게 not to be recognized as a value    
표에서 매칭값 찾기 INDEX(range, row number, column number) INDEX(범위, 행번호, 열번호)
MATCH(value to find, range, match option)

Match options:
0 matches
MATCH(찾는값, 범위, 일치옵션 )

일치옵션:
0 일치
Find a match in a table. 표에서 매칭값 찾기. 

=INDEX(A2:A11,MATCH(G3&G4,B2:B11&C2:C11,0))




         
         
728x90

error 1. 

문제 Integer로 정의된 Map 이 연산식으로 만들어진 숫자키를 읽지 못함 cannot get Map Integer key's value
검색  
해결 taglib 로 Integer 로 형변환하는 태그 생성해서 호출함 정상 확인

커스텀 테그 라이브러리 생성

1. taglibs 프로젝트에 등록

- pom.xml  taglibs-standard-impl 추가. 

- maven Reload project

		<dependency>
			<groupId>org.apache.taglibs</groupId>
			<artifactId>taglibs-standard-impl</artifactId>
			<version>1.2.5</version>
		</dependency>

2. 동작할 메소드 생성

- static으로 생성, 내부에 static 선언의 필요할수 있으니 주의할것.

public class MimimiTagLibHandler extends SimpleTagSupport {

    public static Integer integerValueOf(int number){
        return new Integer(number);
    }
}

3. jsp에서 호출할수있게 설정

- /WEB-INF/임의 폴더/XXXX.tld 추가. 

- show-name <c:   부분  <mimimi:

- uri :  jsp taglib 선언시 주소 와 맵핑 

- function-class : 클래스 정보,  function-signature : 메소드 정보

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xml="http://www.w3.org/XML/1998/namespace"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">

    <description>mimimi tag library</description>
    <tlib-version>1.0</tlib-version>
    <short-name>mimimi</short-name>
    <uri>/WEB-INF/taglib/mimimi-taglib.tld</uri>

    <function>
        <name>integerValueOf</name>
        <function-class>com.web.team.handler.MimimiTagLibHandler</function-class>
        <function-signature>java.lang.Integer integerValueOf(int)</function-signature>
    </function>
</taglib>

4. jsp 호출 사용

<%@ taglib prefix="mimimi" uri="/WEB-INF/taglib/mimimi-taglib.tld" %>
${mimimi:integerValueOf(bibleOn.chapterNo-1)}

 

참고 : https://dion-ko.tistory.com/47

'JAVA' 카테고리의 다른 글

[1028web JSTL ]커스텀 라이브러리  (0) 2022.03.19
VelocityEngine  (0) 2022.02.19
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩  (0) 2021.12.16
[1028web annotation] 어노테이션  (0) 2021.08.29
728x90
  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

 

400 @RequestParam 을 추가하고  null 이가능한 데이터였는데 @Nullable 안쓰면 발생
     
     
     

 

728x90
반응형 숨김(grid) 출처 : https://getbootstrap.com/docs/4.1/utilities/display/
셀크기 지정
row 하위 
총합 12
(나눠사용)
종류 이름 실제크기 컨테이너  클래스
col       col-4
col-xs extra  small <576px 540px col-xs-4
col-sm small medium >576px 540px col-md-4
col-md medium >=768px 720px col-md-4
col-lg large >=992px 960px col-lg-4
col-xl extra large >=1200px 1140px col-xl-4
숨기기 d-none 모든 화면 안보임  
d-xs-none   xs에서 만 숨김 .d-none .d-sm-block
d-sm-none   sm에서 만 숨김 .d-sm-none .d-md-block
d-md-none   md에서 만 숨김 .d-md-none .d-lg-block
d-lg-none   lg에서 만 숨김 .d-lg-none .d-xl-block
d-xl-none   xl에서 만 숨김 .d-xl-none
보이기 d-block 모든화면 보임  
d-xs-block   xs에서 만 보임 .d-block .d-sm-none
d-sm-block   sm에서 만 보임 .d-none .d-sm-block .d-md-none
d-md-block   md에서 만 보임 .d-none .d-md-block .d-lg-none
d-lg-block   lg에서 만 보임 .d-none .d-lg-block .d-xl-none
d-xl-block   xl에서 만 보임 .d-none .d-xl-block
높이 꽉차게 flex-fill body 100% 맞춘후 상위 h-100 row 위치에서  bg-light,flex-fill 설정
버튼(button) 출처 : https://www.tutorialspoint.com/bootstrap/bootstrap_buttons.htm
  btn 버튼 기능 (마우스오버 손가락)
색상 & 의미 btn-primary 가장중요
btn-success 성공, 긍정적
btn-info 정보 
btn-warning 조심
btn-danger 경고, 위험
btn-link 버튼을 덜강조, 링크로 보이게
크기 btn-lg
btn-sm 작음
btn-xs 가장 작음
btn-block 부모에 가득찬 버튼
기능 active 선택중
disable 활성화 여부
Blockquotes blockquote 인용구
  blockquote-footer 인용구의 footer
<blockquote class="blockquote">
   <p class="mb-0"> ~~
   <footer class="blockquote-footer">~~~
</blockquote>
Lists list-unstyled 기본 목록스타일 자식 li 에 자동 왼쪽 들여쓰기
ul 에 등록
  list-inline
> list-inline-item
한줄로 목록 전시 
ul 에 list-inline 등록 li 에 list-inline-item 등록
글자크기(typography) 출처 : https://getbootstrap.com/docs/4.1/content/typography/
전역셋팅   루트 글 크기 : 일반적으로 16px
$font-family-base, $font-size-base 및 $line-height-base 속성을 body 에 적용
$link-color를 통해 전역 링크 색상을 설정하고 :hover에만 링크 밑줄을 적용합니다.
$body-bg를 사용하여 <body>의 배경색을 설정합니다(기본값은 #fff).
전역 변수는 _variables.scss에서 정의. rem에 $font-size-base를 설정필요
Heading <h1></h1> h1 ~h6
<p class="h1"> h1 ~h6
Display
headings
display-1 display-1~4
눈에 띄는 글자크기
Lead lead 눈에 띄는 단락
Inline text <mark> 형광펜같은 바탕추가
<del> 취소선 : 삭제된 텍스트
<s> 취소선 : 더이상 정확하지 않음
<ins> 밑줄 : 추가된 텍스트 
<u> 밑줄
<small> 작은 글씨
<strong> 굵은 글씨
<em> 기우러진글씨(이텔릭)
텍스트 정렬(Text alignment) 출처 : https://getbootstrap.com/docs/4.1/utilities/text/
Font weight and italics font-weight-bold 굵은 글씨
font-weight-normal 보통 글씨
font-weight-light 가는글씨
font-italic 기우러진글씨(이텔릭)
정렬 text-justify css : inter-word(좌우 균분정렬)
text-left 왼쪽정렬      
text-center 가운데 정렬      
text-right 오른쪽 정렬      
text-sm-left sm 사이즈 이상에서 왼쪽정렬 (상기참조)
text-md-left md 사이즈 이상에서 왼쪽정렬(상기참조)
text-lg-left lg 사이즈 이상에서 왼쪽정렬(상기참조)
text-xl-left xl 사이즈 이상에서 왼쪽정렬(상기참조)
wrapping and overflow text-nowrap 부모보다 클 때 글자 넘어감
text-truncate 부모보다 클때  "..." 변환
transform text-lowercase 다 소문자      
text-uppercase 다 대문자      
text-capitalize 첫자 대문자      
Monospace text-monospace font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
상기 글씨체로 셋팅
color text-primary  
text-secondary  
text-success  
text-danger  
text-warning  
text-info  
text-light  
text-dark  
text-body  
text-muted 약간 흐린색
text-white  
text-black-50 grey
text-white-50 grey
  opacity-75 불투명도. 
     
테이블(table) , 출처 : https://kongmemo.tistory.com/4
table table 테이블 지정
테이블 디자인 table table-striped 한줄마다 그레이 바탕 
table table-bordered  테이블 선 보임
table table-hove  마우스 오버 손 기능 , header 제외
table-dark 검정 배경
table-borderless 라인 없음 
높이 table-sm 셀 높이 작게
헤더 색상 thead-dark 
thead-light
 
row 색상 table-색상 tr 에 추가. 
     
상단고정 stikcy-top https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ymw0608&logNo=220916086847
  fixed-top  
           
           
           
스크롤바 style="overflow-y: auto;height: 1000px;"        

 

728x90

VTL (Velocity Template Language)

VTL Velocity에서 템플릿 개발에 사용되는 언어로 레퍼런스(Reference), 디렉티브(Directive), 그리고 주석(Comment)으로 구성된다.

레퍼런스 ${variable} 컨텍스트에서 제공되는 변수에 대한 레퍼런스
${variable.property} 속성에 대한 레퍼런스
${variable.method(args)} 메소드 대한 레퍼런스
디렉티브 #set 레퍼런스의 값을 설정
#if #elseif #else 조건문 제어
#foreach 반복문 제어
#include 파싱되지 않는 로컬 파일 출력
#parse 파싱되는 로컬 템플릿 출력
#stop 템플릿 엔진의 동작 정지
#macro 반복적으로 사용될 매크로 정의
주석 ##  줄짜리 주석
#* .... *# 여러 줄에 걸친 주석



출처: https://androphil.tistory.com/525 [소림사의 홍반장!]

'JAVA' 카테고리의 다른 글

[1028web JSTL ]커스텀 라이브러리  (0) 2022.03.19
VelocityEngine  (0) 2022.02.19
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩  (0) 2021.12.16
[1028web annotation] 어노테이션  (0) 2021.08.29
728x90

https://youtu.be/e2gCuG8NZ_E

 

오정심관(五停心觀) = 오정심(五停心)
다섯 종류의 번뇌 : 부정관, 자비관, 인연관, 계분별관, 수식관 , 불교의 명상법
출처 : http://encykorea.aks.ac.kr/Contents/Item/E0078337
부정관 마음이 욕망에 불타오를 때
우리의 몸이 깨끗하지 못하다
"부정한 것들의 모습을 떠올려 생각하기"
- 백골관(가장 대표적, 죽은 시신을 바라보면서 이 몸이 무상함과 부정함을 꿰뚫음)
- 자신 몸안에 부정한 것들, 똥, 오즘, 고름, 가래 등을 관찰 집착, 탐욕 다스림
자비관 성냄이 강할 때 
진애(화가나고 미워지는것)
자비에서 자(慈, mettā)는 자애의 마음으로서 즐거움을 함께 하는 것이고 비(悲, karuṇā)는 연민의 마음으로서 슬픔을 나누어지려는 행위
자비로움으로 채우는 수행방법
인연관 어리석은 마음 깨우치기.  연기 : 원인과 조건. 
번뇌의 원인을 파악 문제상황에 적절하게 대처위한 명상법
수식관 산란한 마음을 고요히
숨을 쉬고 알아차리는 것
호흡하는 순간 숫자를 붙여가며 헤아림 
들숨, 날숨이 이루어지는 순간을 온전히 집중 
아나빠나 + 사띠
>> 공기의 자극, 감각을 알아차림>> 호흡으로 인한 감각 알아차림
>> 사념처 
계분별관 번뇌 다스리기
외부의 존재 관찰 특성 파악
여섯가지 존재의 요소 
1. 지수화풍 ;근본적인 물질요소.. 땅, 물, 불, 바람
2. 공간, 의식
수행  해탈(속박이 없는 상태)과
열반(마음에 괴로움이 없는 상태)을 목표
명상은 수행의 한 수단
사념처 신념처(身念處), 수념처(受念處), 심념처(心念處), 법념처(法念處)의 네 가지를 말한다.
- 신념처 : 호흡의 수에대한 알아차림(마음챙김명상)
- 수념처: 느낌에대한 알아차림(마음챙김명상)
- 심념처: 마음에대한 알아차림(마음챙김명상)
- 법념처 : 법(오개, 오온, 육처, 칠각지, 사성제 )에 대한 알아차림(마음챙김명상)
출처 : https://ko.wikipedia.org/wiki/%EC%82%AC%EB%85%90%EC%B2%98

 

728x90

출처 : https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html

2. 파일 이름 확장자  .java : 자바소스, .class : 클래스 소스 
일반적사용 파일이름 GNUmakefile , README
3. 파일구성 파일 구성 0. 2000줄 보다 긴 파일은 피할것.  Java Source File Example 참고. 
1. 각 Java 소스 파일에는 단일 공용 클래스, 인터페이스 포함,  공개 클래스는 파일의 첫 번째 클래스 또는 인터페이스. 
Java 소스 파일 의 순서. 
- 주석시작(Beginning Comments)
- 패키지 및 가져오기 문(Package and Import statements)
- 클래스 및 인터페이스 선언(Class and Interface Declaration)
1. 주석시작
: Beginning Comments
모든 소스파일은 c-style 주석으로 시작하고, 클래스이름, 버전, 날짜, copyright 작성
/*
* Classname
* Version information
* Date
* Copyright notice
*/
주석  출처 : https://en.cppreference.com/w/c/comment

C-style      : /* C-style*/
C++-style :  // C++-style
2. package, import 주석이 없는 첫번째 라인
package java.aws;
import java.awt.peer.CanvasPeer;
3. Class, Interface 선언 1. doc 작성은 /**  */
2. class or interface  문구작성
3. class or interface  구현 주석은 /* */
4. class (static) 변수 작성   : 작성순서 : public > protected >(default) > private
5. 인스턴스변수( Instance variables) :
                                     작성순서 :  public > protected >(default) > private
6. 생성자
7. 메소드 : 범위 접근성이 아닌, 기능별 그룹화(개인클래스 매서드는 두개의 공용 인스턴스 메서드 사이에 있을수 있음)
8. 
4. 들여쓰기(Indentation)   4개의 공백을 들여쓰기 단위로 사용, 정확한 구성(space vs tabs)은 지정되지 않음, 탭은 8칸마다 설정
1. 라인 길이  터미널에서 80자 보다 긴 줄은 잘 처리 되지않음으로 피하세요.
document 사용시 70자를 넘기지 않게 작성
2. 줄바꿈 표현식이 한 줄에 맞지 않으면 다음 일반원칙을 따름. 
1. 쉼표(,) 뒤에 엔터
      ~~~(String a,
             String b)
2. 높은레벨과 낮은 레벨에서 줄바꿈이 필요하면 높은레벨에서 줄바꿈
var = method1( a ,
                    method2(c,
                                d));
3. 연산자(operator) 앞에서 줄바꿈
4. 같은 레벨의 새로운 시작은 이전줄의 같은 레벨에서 줄바꿈
      sum = a +~~~ + q
               +r+~ ;
      sum = a +~~~ + q
                        +r+~ ;     // 피할 것.         
5. 위의 규칙으로 코드가 혼란스럽거나 오른쪽 여백에 대해 눌러진 코드가 발생하면 대신 8칸 들여쓰기 하세요.  
public static synchronized longNameMehhodNameLongLong(int a,
         int bLongNamelonglonglonglong, int cLongNamelonglonglonglong,
         int d)
6. 8 칸 들여쓰기 규칙이 보통쓰이지만 내용을 인식하기 어려운경우 4칸을  더 들여쓰세요. 
if ( ( alongLongLongLong  && blongLongLongLong)
           || ( clongLongLongLong  && dlongLongLongLong)
           || ( elongLongLongLong  && flongLongLongLong)
   ) {
      contentDo();
}

if ( ( alongLongLongLong  && blongLongLongLong) || ( clongLongLongLong  && dlongLongLongLong)
           || ( elongLongLongLong  && flongLongLongLong)
   ) {
      contentDo();
}

// 아래 피할것. 
if ( ( alongLongLongLong  && blongLongLongLong)
       || ( clongLongLongLong  && dlongLongLongLong)
       || ( elongLongLongLong  && flongLongLongLong)
   ) {
      contentDo();
}

7. 3항연산자(ternary expressions) 정렬
a = (aLongLongLong) ? b : c;
a = (aLongLongLong) ? b
                             : c;
a = (aLongLongLong)
      ? b
      : c;
 
5. 주석(Comments)   /*...*/ 
: 구현주석(implementation comments)
: C++ 에서 볼수있는주석. 
: 코드 주석처리, 특정 구현에 대한 주석을 작성하기 위함
/**...*/
: 문서주석(documentation comments)
:  java 전용, javadoc 도구를 사용하여 HTML 파일로 추출가능

1. 주석은 코드의 개요를 제공하고, 코드 자체에서 쉽게 사용할 수 없는 추가 정보를 제공하는데 사용해야 합니다. 
2. 설명에는 프로그램을 읽고 이해하는 데 관련된 정보만 포함되야 합니다. 
(해당 패키지가 어떻게 빌드되었는지, 어떤디렉토리에 있는지에 대한 정보 주석포함 안됨. )
3. 애매한코드(nontrivial or nonobvious) 에대한 주석은 적절하지만, 명확한 코드에는 작성하지 않습니다. ( 중복된 내용 발생)
4. 주석을 추가해야 하는경우 코드를 다시 작성해서 명확하게 하는것이 좋습니다. 
5. 주석에 특수문자 백스페이스, 들여쓰기 줄바꿈(form-feed) 사용하지 말것 ex)\f, \b
6. 주석을 별표나 문자로 되어 있는 넓은 범위에 코드에 사용하지 말것
(해석 불분명 : Comments should not be enclosed in large boxes drawn with asterisks or other characters.)
Carriage return
Line feed
Form feed

 출처 : https://stackoverflow.com/questions/3091524/what-are-carriage-return-linefeed-and-form-feed
https://ko.wikipedia.org/wiki/%EC%BA%90%EB%A6%AC%EC%A7%80_%EB%A6%AC%ED%84%B4

carriage return (= Return= CR = 0x0D) : 커서를 현재 줄의 맨 처음으로 보냄
$) note\rbook
note
book


Line feed (= New line = LF = 0x0A): 줄을 옮김  
$) note\nbook
note
book

Form feed (= FF = 0x0C) : 들여쓰기 줄바꿈
$) note\fbook
note
      book
https://itng.tistory.com/25

스페이스바 띄워쓰기 

백스페이스 바 
1. 구현 주석 형식 블록(block)
한줄(single-line)
후행(trailing)
줄끝(end-of-line)
1.1. 블록주석 파일, 메서드, 데이터 구조 및 알고리즘에 대한 설명제공
함수, 메서드 내부 블록 주석은 설명하는 코드와 동일한 수준 들여쓰기 사용
블록 주석은 코드의 나머지 부분과 구분하기 위해 공백 행이 앞에와야함
/*
 * block comment
 */
들여쓰기(indent) indent (-)가 형식을 재구성 할수없는 블록 주석으로 인식하게 한다. 
/*-
 * block comment
 */
1.2 한줄주석 한줄 주석은 다음 라인에 오는 소스만큼 들여쓰기 작성
만약 주석을 한줄로 쓸수없다면 블록주석포멧으로 작성.
한줄 주석 앞에는 공백이 있어야 합니다. 
    /* 주석 */
    public ....
1.3 후행(Trailing) 주석 매우 짧은주석으로, 코드와 분리 되어 있을수 있도록 멀리이동
둘이상 짧은 주석이 있으면 도일한 탭으로 들여쓰기 

if (a==1){
    return true;         /* 주석1*/
} else {
    return false;        /* 주석2*/
}
1.4 줄끝(End-of-line)주석 "//" 구분자 는 전체행, 또는 일부행만 주석처리 가능
연속된 여러줄에 사용하면안됩니다. 
그러나 코드를 주석처리할때는 사용할수있습니다. 

한줄주석처럼, 후행주석처럼, 코드만 연속된줄에 사용가능. 


2. 문서 주석 https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html 이위치에 더자세한 설명
java class, interfaces, constructors, method, field 에 사용

/**...*/  인터페이스, 클래스, 멤버당 하나의 주석 존재, 선언직전 사용. 

/**
 * 문서주석
 */
public class Example {

- 클래스, 인터페이스
최상위 클래스와 인터페이스는 들여쓰기가 되어 있지 않지만, 그 구성원은 들여쓰기. 
첫번째 줄은 들여쓰지 않고 후행 1칸씩 들여쓰기. (별표 세로정렬위해)

- 생성자를 포함한 구성원. 
첫번째 문서 줄에 4개의 공백, 그후 5개의 공백

문서화에 적합하지 않은 클래스, 인터페이스, 변수 또는 메서드에 대한 정보를 제공해야 하는 경우 바로 뒤에 구현블록 주석 혹은 한줄블록 주석
예를들어 클래스 구현에 대한 세부정보는 클래스 문 다음의 구현블록 주석에 들어가야
Java 는 문서 주석을 주석 뒤의 첫 번째 선언과 연관시키기 때문에 문서 주석은 메소드 또는 생성자 정의 블록 내부에서 위치해서는 안됩니다. 
6 선언(Declarations) 1. 줄당 숫자 줄당 하나의 선언을 추천합니다.  
주석을 권장 하기위해 
int aLevel; // 주석1
int bLevel; // 주석2

int aLevel, bLevel;  이것보다 줄당 하나의 선언 추천.  같은타입만 사용. 
  2. 초기화 선언된 지역 변수를 초기화할것.
초기화 하지 않는 유일한 이유는 초기 값이 먼저 발생하는 계산에 의존하는경우
  3. 위치(Placement)  
     

Conventions 규약

'JAVA' 카테고리의 다른 글

[1028web JSTL ]커스텀 라이브러리  (0) 2022.03.19
VelocityEngine  (0) 2022.02.19
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩  (0) 2021.12.16
[1028web annotation] 어노테이션  (0) 2021.08.29
728x90

 

 

강의 1: AWS 클라우드 소개 - 시간대 2

김지선, 테크니컬 트레이너, AWS

AWS 소개

- 컴퓨팅

- 스토리지

- 데이터베이스

- 네트워킹

- 보안

AWS를 위한 혁신 


1) 클라우드란 무엇인가? - 온프레미스 : 서버, 스토리지, 데이터베이스, 어플리케이션 > 기업네트워크
- 클라우드 서비스 공급자 : 서버, 스토리지, 데이터베이스, 어플리케이션  > 인터넷
클라우드 컴퓨팅을 사용하면 인프라를 하드웨어가 아닌 소프트웨어로 간주하고 사용. 
- 자본비용을 가변비용으로
- 속도 및 대응력 향상
- 규모의 경제로 얻게되는 이점
- 데이터센터 운영 및 유지 관리 비용에 투자 불필요
-  용량 추정 불필요
- 몇 분 만에 전 세계에 배포
cf) 중고나라 개발인력으로 적은인프라인력으로 운영, KBS 의 아시안게임(이벤트성 서비스)시 비용절감
2) aws 인프라 및 서비스 - 보안 :
보안그룹, 네트워크 ACL, AWS IAM <=> 방화벽, ACL, 관리자 
- 네트워킹 : 
Elastic Load Balancing, Amazon VPC <=> 라우터, 네트워크 파이프라인, 스위치
- 서버 :
AMI, Amazon EC2 인스턴스 <=> 온프레미스 서버
- 스토리지 및 데이터 베이스 :
Amazon EBS, Amazon EFS, Amazon S3, Amazon RDS <=> DAS, SAN, NAS, RDBMS
3) 주요 서비스 분야 -컴퓨팅, 스토리지, 데이터베이스, 네트워킹, 보안
4) 작동방식 -AWS는 하드웨어 소유, 유지관리
- 고객은 필요한 항목 프로비저닝 하고 사용.
5) 클라우드 배포모델 온프레미스 / 하이브리드 / 클라우드
6) AWS 글로벌 인프라 - 데이터 센터 : 일반적으로 수천대의 서버 수용
- 가용영역(AZ) : 하나 이상의 데이터 센터, 내 결함성을 갖도록 설계
cf) 내 결함성
- 리전 : 각 AWS 리전은 두 개 이상의 AZ로 구성
7) 글로벌 인프라  리전선택 : 데이터 거버넌스, 지연, 비용
엣지 인프라 : Amazon CloudFront(콘텐츠 전송네트워크), AWS Outposts, AWS WaveLength
8) AWS 엣지 인프라 최종 사용자에게 짧은 지연시간으로 서비스제공 AWS 추가적인 서비스
= 엔드포인트에서 엔드유저에 더 가까이 이용할수있게한다
- AWS Outposts : AWS 인프라 및 서비스(온프레미스)
: 워크로드가 AWS의 나머지 다른 워크로드와 원할하게 실행
사용사례 : 마이그레이션, 로컬 크리티컬 애프리케이션, 데이터 레지던시
서비스 모델 : 고객의 데이터 센터, 코로케이션, 온프레미스 위치의 확장 가능한 용량
- AWS Local Zones  : AWS 인프라 및 서비스(대형 메트로 센터)
사용사례 : 마이그레이션, 짧은 지연, 로컬 데이터 처리
서비스 모델 : AWS 관리 및 운영 시설의 확장 가능한 용량
- AWS Wavelength : AWS 인프라 및 서비스 (CSP 5G 네트워크)
사용사례 : 매우 짧은 지연, 로컬 데이터 처리
서비스 모델 : AWS가 관리하고 지원하는 CSP 데이터 센터의 확장 가능한 용량. 
9) AWS와 상호작용하는 3가지 방법 - AWS Management Console
- AWS CLI
- SDK 

강의 2: AWS 클라우드 핵심 서비스 소개: 컴퓨팅 - 시간대 2

이기백, 테크니컬 트레이너, AWS

1) Amazon EC2 Amazon Elastic Compute Cloud
- 크기 조정 가능한 컴퓨팅 용량
- 컴퓨팅 리소스 완전제어
- 새로운 서버 인스턴스 확보 및 부팅 시간 단축
2) 가상머신과 물리적 서버 비교 온프레미스 서버로 해결하기 어려운 몇몇 문제해결가능
Amazon Ec2는 가상머신, 일종의 Stateless하게 관리(Scale Up, Scale Down)
- 데이터 기반 의사 결정
- 빠른 반복
- 자유로운 실수
cf) PoC(Proof of Concept) 실행시 이점.  새로운 프로젝트가 실제로 실현 가능성이 있는가, 효과와 효용, 기술적인 관점에서부터 검증을 하는 과정
3) AmazonEC2 서비스 - Amazon Machine Image(AMI) 사용
: AWS, 마켓플레이스, 사용자 자체 구성 API 생성해서 사용가능. 
: 애플리케이션 서버, 웹서버, 데이터 베이스 서버, 게임서버, 메일 서버, 미디어 서버, 카탈로그 서버, 파일서버 
- 필요에 따라 인스턴스를 추가 또는 종료
- 인스턴스 일시 중지 및 다시시작
- 템플릿: 스토리지 볼륨, 시작권한, 블록 디바이스 매핑)

cf) 정지, 제거시 비용청구안됨
4) AmazonEC2 이점 탄력성, 제어, 유연성, 통합, 안정성, 보안, 저렴한비용, 용이성
5) Amazon EC2 인스턴스 패밀리 및 이름 효율적인 인스턴스 사용과 비용절감을 위해 올바른 유형선택이 매우 중요

인스턴스 패밀리
- 범용( A1, T3, T3a, T2, M6g, M5 )
:트래픽이 적은 웹 사이트와 웹 애플리케이션, 소형 데이터베이스 및 중형 데이터베이스 
- 컴퓨팅 최적화(C5, C5n, C4)
: 고성능 웹 서버, 동영상 인코딩
- 메모리 최적화(R5, R5n, X1e, X1, z1d )
: 고성능 데이터베이스, 분산 메모리 캐시
- 스토리지 최적화(I3, I3en, D2, H1)
: 데이터 웨어하우징, 로그 또는 데이터 처리 애플리케이션
- 엑셀러레이티드 컴퓨팅(P3, P2, Inf1, G4, G3, F1 )
: 3D 시각화, 기계 학습
6) Amazon EC2 요금 온디맨드 인스턴스
예약 인스턴스
Saving Plans
스팟 인스턴스
- 초당결제(Amazon Linux, Ubuntu 전용)
- 시간당 결제(다른모든 OS)
7) 비관리형 서비스와 관리형서비스 - 비관리형: 사용자가 조정, 내결함성, 가용성을 관리
- 관리형: 일반적으로 조정, 내결함성, 가용성이 서비스에 내장되어 있음
8) Amazon Elastic Container Service(Amazon ECS) - 컨테이너의 실행을 조정합니다. 
- 컨테이너를 실행하는 노드 플릿을 유지하고 관리
- 인프라 구축의 복잡성을 제거 

일정 예약 및 오케스트레이션 - 클러스터 관리자, 배치 엔진
쿠버네티스 - EKS
9) 서버리스 컴퓨팅이란? 서버를 관리하지 않고 애플리케이션과 서비스를 구축하고 실행
- 프로비저닝하거나 관리할 서버 없음
- 유휴 상태에 대한 지불 없음
- 사용량에 따라 조정
- 가용성 및 내결함성 내장
10) AWS Lambda - 완전 관리형 컴퓨팅 서비스
- 상태 비저장 코드 실행
- 다국어 지원
- 일정에 따라 또는 이벤트(예: Amazon S3 버킷 또는 Amazon DynamoDB 테이블의 AWS 데이터 변경)에 대한 응답으로 코드 실행
11) AWS Lambda 예시 1. 사용자가 전체 크기 이미지 업로드
2. 객체가 생성되면 Amazon S3가 이벤트를 Lambda 함수로 보냄
3. Lambda 함수가 이미지 크기를 조정하고, 썸네일을 대상 버킷에 업로드 

.. 프로비저닝 하거나 관리할 서버 없음
12) 서버리스 애플리케이션 사용사례 - 웹 애플리케이션
:  정적 웹 사이트,  복잡한 웹 애플리케이션,  Flask 및 Express용 패키지
- 백엔드
:애플리케이션 및 서비스,  모바일,  IoT 
- 데이터 처리
: 실시간 MapReduce 배치,  기계 학습 추론
- Chatbot 
: Chatbot 로직 지원, 
- Amazon Alexa
: 음성 지원 애플리케이션 지원,  Alexa Skills Kit
- IT 자동화
: 정책 엔진,  AWS 서비스 확장,  인프라 관리

 


강의 3: AWS 클라우드 핵심 서비스 소개: 스토리지, 데이터베이스 - 시간대 2

김지선, 테크니컬 트레이너, AWS

1) AWS 스토리지 옵션 - Amazon S3
: 클라우드상의 확장 가능하고 내구성이 뛰어난 객체 스토리지
- Amazon S3
: Glacier 클라우드상의 저렴하고 내구성이 뛰어난 아카이브 스토리지 
- Amazon EFS
: Amazon EC2 인스턴스용 확장 가능 네트워크 파일 스토리지 ch)NAS처럼사용
- AWS Storage Gateway
:온프레미스에서 거의 무제한의 클라우드 스토리지에 액세스할 수 있는 하이브리드 클라우드 스토리지 서비스
- Amazon EBS
: Amazon EC2 인스턴스를 위한 내구성이 있는 블록 수준 스토리지를 제공하는 네트워크 연결 볼륨
2) Amazon S3


- 객체 수준 스토리지
-  99.999999999% 내구성을 제공하도록 설계
- 이벤트 트리거

사용사례 : 콘텐츠 저장 및 배포, 백업 및 아카이빙, 빅데이터 분석, 재해 복구, 정적 웹사이트 호스팅

- 데이터를 저장 및 검색하도록 구축 
- 속도, 내구성, 가용성이 뛰어난 객체 액세스 
- 버킷에 저장할 수 있는 객체 수에 제한이 없음
- 웹 어디서나 언제든 데이터 저장 및 검색

클라이언트 S3에 요청전송 -> AMAZON 버킷 -> 객체를 반환
key-value 기반의 객체 스토리지 

3) Amazon S3 Glacier[글래시어]
- 장기 데이터 스토리지
- 아카이브 및 백업
- 비용이 매우 저렴한 스토리지

사용 사례:  미디어 자산 워크플로, 의료 정보 아카이빙, 규제 및 규정 준수를 위한 아카이빙, 과학적 데이터 스토리지, 디지털 보존, 마그네틱 테이프 대체

cf) 탈퇴한 고객 데이터 저장 1기가바이트당 5원. 

Amazon EBS

Amazon Elastic Block Store
Amazon EBS 볼륨 : 가용영역내에 데이터 미러링. 고가용성. , 특정시점 스냅샷제공
볼륨을 분리하고 다른 EC2 인스턴스에 다시 연결
백업 및 복구를 위한 볼륨 스냅샷 생성

- 인스턴스용 영구 블록 스토리지
- 복제를 통해 보호
- 상이한 드라이브 유형
- 몇 분 만에 확장 또는 축소
- 프로비저닝한 만큼만 요금 지불
- 스냅샷 기능
-암호화 사용 가능
목적별 데이터베이스  - 관계형 데이터베이스 
: Amazon RDS
: Amazon Aurora, MS SQL Server, MariaDB, ORACLE, PostgresSQL, MYSQL
: Amazon Aurora [오로라]
: MySQL 및 PostgreSQL 호환 관계형 
: 완전관리형 . 고가용성 및 내구성, 고성능, 호환성, 다중리전, 높은 확장성
, Amazon Redshift

- 비관계형 데이터베이스

: 어떤 규모에서든 빠르고 유연한 NoSQL 데이터베이스 서비스
: 완전관리형, 세분화된 앤세스 제어, 빠르고 일관된 성능, 유연성
ex) 순위표 및 점수(플레이어)-> 게임서버-> 순위표
최상의 수평확장기능 필요, 단순한 대용량 데이터, 신속하고 간편하게 확장, 복잡한 조인이 필요하지 않음

- 비관계형 문서 
: Amazon Document DB
- 비관계형 인메모리
: Amazon ElastiCashe
- 비관계형그래프
: Amazon Neptune
- 비관계셩 원장
: Amazon QLDB
DB 직접설치 vs AWS 데이터베이스 DIY : EC2에 직접 DB 설치 하는 옵션 : AWS 사용하지 않은것 사용가능, 세밀한조정가능
AWS 데이터베이스 서비스 : 복잡한 관리작업 AWS 위임. 손쉬운 DB 이중화 외

강의 4: AWS 클라우드 핵심 서비스 소개: 네트워킹, 보안 - 시간대 2

이기백, 테크니컬 트레이너, AWS

-네트워킹

Amazon VPC


Amazon Virtual Private Cloud

- AWS 클라우드의 프라이빗 네트워크 공간
- 워크로드의 논리적 격리 제공 ex) 개발용, 테스트용
- 리소스에 대한 사용자 지정 액세스 제어 및 보안 설정 허용
서브넷을 사용하여 VPC 분리 서브넷은 리소스 그룹을 격리할 수 있는 VPC IP 주소 범위의 세그먼트 또는 파티션입니다.
서브넷은 인터넷 접근성을 정의합니다.
프라이빗 서브넷
• 인터넷 게이트웨이에 대한 라우팅 테이블 항목 없음
• 퍼블릭 인터넷에서 직접 액세스 불가
VPC의 계층화된 네트워크 방어
출처 : AWS AWSOME DAY
인프라 구조화
ELB


Elastic Load Balancing

수신되는 애플리케이션 트래픽을 여러 Amazon EC2 인스턴스, 컨테이너, IP 주소에 분산하는 관리형 로드 밸런싱 서비스

고가용성, 상태확인, 보안 기능
Amazon Route 53

Amazon Route 53

Domain Name System(DNS) 
도메인 이름을 구입하여 관리하고 DNS 설정을 자동으로 구성할 수 있습니다.
멀티플 라우팅 옵션...사용자 위치에 따라 vpc 위치를 조절할수있다. 

- 보안

AWS 공동 책임 모델 과제: 보안을 고려한 설계, 지속적 모니터링, 고도의 자동화, 높은가용성, 엄격한 인증



AWS Identity and Access Management(IAM)

AWS 리소스에 대한 액세스를 안전하게 제어 
사용자, 그룹 또는 역할에 세분화된 권한 할당
AWS 계정에 대한 임시 액세스 공유 
회사 네트워크의 사용자 연동 또는 인터넷 자격 증명 공급자와 연동
IAM 구성 요소 사용자 : AWS와 상호 작용하는 사람 또는 애플리케이션
그룹 : 동일한 권한을 가진 사용자 모음
역할 : 엔터티가 맡을 수 있는 임시 권한

- 사용자가 액세스할 수 있는 AWS 리소스 정의
- 자격 증명 및 액세스 제어 표준을 충족하는 데 도움: 인증, 권한부여

계정은 루트 사용자 권한, 해당 계정 탈취시 심각한 보안문제. 
MFA, 멀티팩트 인증을통해 사용하는것을 추천. 
IAM 사용자 IAM 사용자는 별도의 AWS 계정이 아닌 계정 내 사용자
각 사용자는 자체 자격 증명 보유
IAM 사용자는 자체 권한을 기준으로 특정 AWS 작업을 수행할 권한 보유
Amazon S3 액세스 제어: 일반 S3 버킷 정책
> 프라이빗, 퍼블릭 선택적 접근가능. 
AWS CloudTrail
누가? 무엇을? 언제? 어디로?
AWS 계정의 사용자 활동 및 API 사용 추적 
지속적으로 사용자 활동을 모니터링하고 API 호출을 기록 
규정 준수 감사, 보안 분석, 문제 해결에 유용 
로그 파일은 Amazon S3 버킷으로 전송됨
AWS Trusted Advisor
비용 절감, 성능 개선, 보안 강화에 도움이 되는 지침을 제공하는 서비스
비용최적화, 성능, 보안, 내결함성 기능, 서비스 한도

강의 5: AWS와 함께 혁신하기 - 시간대 2

김지선, 테크니컬 트레이너, AWS

- 사물

당면 과제 관리 및 업데이트
▪ 일관되지 않거나 간헐적으로 끊기는 네트워크 연결
▪ 디바이스가 원격에 있어 물리적으로 액세스할 수 없음
▪ 생산 단계의 대규모 디바이스 플릿
분석
▪ 컴퓨팅 파워와 사양이 낮은 디바이스의 리소스
▪ 디바이스가 많은 양의 스트리밍 데이터를 내보낼 수 없음
고객이 AWS IoT를 사용하여 하는 일  분석 서비스 AWS IoT Device Management AWS IoT Device Defender AWS IoT Core 연결성 및 제어 서비스 AWS IoT Device Tester
AWS IoT 서비스 분석 서비스
: AWS IoT SiteWise,  AWS IoT Analytics,  AWS IoT Events, AWS IoT Things Graph
연결성 및 제어 서비스
: AWS IoT Core, AWS IoT Device Management, AWS IoT Device Defender
디바이스 AWS IoT Device SDK 소프트웨어
: FreeRTOS, AWS IoT Device SDK, AWS IoT Greengrass, AWS IoT Device Tester
AWS IoT Core: 신속한 개발  
AWS IoT Greengrass 데이터를 로컬에저장, 필요한데이터만 클라우드에 전송. 

- 기계학습

기계 학습이란 무엇입니까? 인공 지능(AI)
: 컴퓨터가 로직, if-then 문, 기계 학습(딥 러닝 포함)을 사용하여 인간 지능을 모방할 수 있게 하는 모든 기술
기계 학습(ML)
: 기계로 데이터의 패턴을 검색하여 논리 모델을 자동으로 빌드하는 AI 하위 집합
딥 러닝
: 음성 및 이미지 인식과 같은 작업을 수행하는 심층 다중 계층 신경망으로 구성된 ML 하위 집합
Amazon SageMaker 개요  
Amazon Rekognition[리코그니션] 객체 및 장면 탐지
얼굴 분석
얼굴 비교
얼굴 인식

- 블록체인

블록체인이란 무엇입니까? 블록체인을 활용하면 신뢰할 수 있는 중앙 기관이 없어도 여러 당사자가 트랜잭션을 실행할 수 있는 애플리케이션을 구축할 수 있습니다.
현재는 기존 기술로 확장 가능한 블록체인 네트워크를 구축하는 과정이 설정상 복잡하고 관리하기 어렵습니다.
블록체인 특징  
AWS 블록체인 서비스  
Amazon Managed Blockchain 기능  
사용 사례 예시  
Amazon Managed Blockchain을 활용하여 공급망 투명성을 높인 Nestlé의 Chain of Origin 커피  
   

- AWS Ground Station

AWS Ground Station 자체 지상국 인프라 구축이나 관리를 걱정할 필요 없이 인공위성 통신을 제어하고 데이터를 처리하며 작업을 확장할 수 있는 완전관리형 서비스입니다.

• 인프라 약정 없이 위성 지상 지원
• 분 단위 요금
• 셀프 서비스 일정 예약
• AWS 리소스 및 서비스에 직접 액세스할 수 있는 공동 지상국 및 AWS 데이터 센터 • 요금에 포함된 고객 선택 리전으로 기본 대역 데이터 백홀
• 거의 실시간으로 데이터 전송
일반적인 위성 데이터 클라우드 처리 사용 사례  
업계 당면 과제  

AWS Wavelength

AWS Wavelength AWS Wavelength는 AWS 컴퓨팅 및 스토리지 서비스에 5G 네트워크의 높은 대역폭과 매우 짧은 지연을 결합하여 개발자가 완전히 새로운 종류의 애플리케이션을 혁신하고 제작할 수 있습니다.
CSP 5G 네트워크의 AWS 인프라 및 서비스
지연이 매우 짧은 로컬 데이터 처리
AWS가 관리 및 지원하는 CSP 데이터 센터의 확장 가능한 용량
모바일 엣지 컴퓨팅: 특징 센서, 비디오 카메라, IoT 디바이스 등 대량의 데이터를 생성하는 엄청나게 많은 디바이스 
데이터 생성과 가까운 곳에서 데이터 처리 필요 
지연이 매우 짧은 실시간
5G 및 모바일 엣지 컴퓨팅  
AWS Wavelength: 모바일 엣지용으로 구축  
AWS Wavelength 사용 사례  

 온디맨드 : On-Demand : 주문형 서비스 : 이쪽으로와!!!

1. 소비자가 있는 곳까지 찾아가서 상품과 서비스를 전달하는것

2. 이용자의 요구에 따라 상품이나 서비스가 바로 제공되는것. 

 

내 결함성 : FT : Fault Tolerance

다운 타임을 최소화 = 시스템 구성 요소중 하나가 다운되더라도 시스템이 계속 작동할수 있다.

cf) 이중화 , 포워드 오류수정, 체크 포인트.... 

내결함성(FT)과 고가용성(HA)의 차이점 (mungi.kr)

 

고가용성 : HA : Hight Availability

가용성이 높다 = 절대 고장나지 않음

고가용성 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

cf) RAID 방식, SAN 방식

 

거버넌스 : governance

 

엣지 로케이션 : PoP

: 최종 사용자에게 짧은 지연시간으로 서비스제공 AWS 추가적인 서비스

 

엣지 인프라 설명하신거 문구로 볼수 있을까요. 너무빨리 지나갔어요

aws 엣지 인프라는 리전과 가용영역 외에 엔드유저에게 가까운 곳에 위치한 aws의 추가적인 시설물입니다. local zones, 엣지로케이션 등 여러 개념이 있는데, 각 개념의 문구는 아래의 웹에서 확인해 보실 수 있습니다. https://aws.amazon.com/ko/about-aws/global-infrastructure/regions_az/

 

S3 가 무엇인지 설명해주실수 있을까요?

안녕하세요. Amazon S3는 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지입니다. 추가적으로 궁금하신 부분은 링크 참조하시면 더 구체적인 정보를 얻으실 수 있습니다. https://aws.amazon.com/ko/s3/?nc=sn&loc=0

 

'Cloud > AWS' 카테고리의 다른 글

[1028 aws] Awsome Day 20210930  (0) 2021.09.30
[1028web NETWORK] 네트워크  (0) 2021.07.05
[1028web aws02] aws 계정  (0) 2021.07.05
[1028web aws01] aws 기초  (0) 2021.07.02
728x90
자료와 정보의 관계 자료-> 처리(컴퓨터)-> 정보   
I = P(D)
자료 현실 세계에서 관찰이나 측정을 통해서 수집된 값(value)이나 사실(fact)

우리의 생활에서 실제로 만질 수 있거나 볼 수 있거나 하는 것(길이, 무게, 부피 측정가능 대상)에 대해서 물리적인 단위로 표현하여 얻어낼 수 있는 내용
정보 어떤 상황에 대해서 적절한 의사결정(decision)을 할 수 있게 하는 지식(knowledge)이며, 자료의 유효한 해석이나 자료 상호 간의 관계
어떠한 상황에 적절한 결정이나 판단에 사용될 수 있는 형태로 가공되거나 분류되기 위해 '처리과정'을 거쳐서 정리되고 정돈된 '자료'의 2차 처리 결과물
추상화 공통적인 개념을 이용하여 같은 종류의 다양한 객체를 정의하는 것
자료의 추상화 다양한 객체를 컴퓨터에서 표현하고 활용하기 위해 필요한 자료의 구조에 대해서 공통의 특징만을 뽑아 정의 한 것
자료구조 추상화를 통해 알고리즘에서 사용할 자료의 논리적 관계를 구조화 한 것
자료구조 &알고리즘 자료구조는 입력값에 대한 추상화
알고리즘은 (컴퓨터)수행해야 할 명령의 추상화 
자료구조 종류 자료구조
> 미리 정의된 자료구조 = 기본자료구조(정수, 실수, 문자) + 파생된 자료구조(배열, 구조체, 포인터)
               +
    사용자 정의 자료구조 = 리스트, 트리, 스택, 그래프, 큐 
알고리즘 1. 정의 : 컴퓨터가 특정한 일을 수행하는 명령어들의 유한 집합

2. 조건 : 출력, 유효성, 입력, 명확성, 유한성

3. 성능분석(performance analysis)
- 실행시간 분석 : O(n)
- 실행메모리 분석 : 필요한 공간(메모리)을 추정하여 성능분석
> Sp = Sc + Se   ; 공간복잡도 = 고정공간 + 가변공간
공간복잡도 : 완료하는 데 필요한 총 메모리 공간
고정공간 : 입출력 횟수 관계없이 실행 끝날 때까지 고정적으로 필요한 메모리 공간
가변공간 : 동적으로 할당되어야 하는 자료구조, 변수들을 위해 필요한 메인 메모리 공간

4. 성능 측정(performance measurement)
컴퓨터가 실제로 프로그램을 실행하는 데 걸리는 시간을 측정 하여 알고리즘의 성능을 측정
> 실행시간 시계, 시스템시계
배열 1. 정의 : 인덱스와 원소값의 쌍으로 구성된 집합
(by 사전) 일정한 차례나 간격에 따라 벌여 놓음

2. 특징
배열의 순서는 메모리 공간에 저장되는 "원소값의 물리적 순서"
같은 자료형과 같은 크기의 기억공간을 가짐. 
인덱스값을 이용한 직접 접근 가능

3. ADT Array 객체 = <Index, Element> 쌍들의 집합
추상 자료형 : 객체 및 관련된 연산의 정의
자료형 : 메모리 저장 할당을 위한 선언

4. 연산구현
create
retrieve
store

5. 2차원배열
- 행우선배열
- 열우선배열

6. 희소행렬
0인 원소가 그렇지 않은 원소보다 상대적으로 많을 때, 0아닌 값만 따로 저장 

cf)
메모리 주소값 = 실제 메모리 물리적인 위치값
인덱스 값 = 개발자에게 개념적으로 정의 
자료형 자료가 기억될 기억 장소의 유형, 즉 정수형, 실수형 등
추상 자료형 자료의 복잡한 논리적 성격을 정의하는 형식으로 자료 값의 집합과 연산 집합에 대한 명세의 집합
   
   
   
728x90
 02. 클라우드 컴퓨팅 서비스
클라우드 컴퓨팅
특징
1. 정의
언제 어디서나 필요한 만큼의 컴퓨팅 리소스를 인터넷을 통하여 활용할 수 있는 컴퓨팅 방식.

=(by 일반적)
인터넷상에 존재하는 클라우드 사업자에 의해 서비스가 제공되는 컴퓨팅 기술
=(by 위키피디아)
인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다. 
=(by AWS)
클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용하는 만큼만 비용을 받는 것을 말한다. 
=(by NIST , 미국 국립 표준기술원) ** 가장많이 인용
The NIST Definition of cloud Computing
클라우드 컴퓨팅은 어디에서나 동작하고 편리하며, 최소한의 관리 노력이나 서비스 제공자와의 상호 작용을 통해 빠르게 제공하고 배포할 수 있는 구성 가능한 컴퓨팅 리소스(예: 네트워크나 서버, 저장소, 애플리케이션 및 서비스)의 공유 풀에 주문형 네트워크로 접근 가능한 모델. 
이 클라우드 모델은 5가지 본질적 특성과 3가지 서비스 모델, 그리고 4가지 배포 모델로 구성된다. 
5가지 본질적 특성 1. 온디맨드 셀프 서비스(on-demand self-service)
서버, 네트워크 장치, 저장 장치 등의 it리소스를 사용자가 전문가의 개입 없이 필요한만큼 자동적으로 확보해 사용할 수 있다는 특징. 

2. 광범위 네트워크 액세스
클라우드 컴퓨팅은 서버가 원격지에 가상으로 존재하여 네트워크로 연결되는 클라이언트-서버구조. 한 형태.  모바일, 노트북, pc 기종상관없이 웹 인터페이스를 통하여 서비스에 접근할 수 있는환경 제공. 
클라이언트-서버 모델: 클라이언트, 서버간 작업 분리해주는 분산 애플리케이션 구조, 네트워크 아키텍쳐
1) 팻 클라이언트 (fat Client) : 중앙 서버와 독립하여 풍부한 컴퓨팅 기능 보유한 클라이언트-서버 구조나 네트워크 클라이언트 
2) 씬 클라이언트 (Thin Client) :  자신의 컴퓨팅 역할을 충족시키기 위해 다른 일부 컴퓨터(서버) 에 크게 의존하는 컴퓨터나 네트워크 클라이언트

3. 리소스 풀링
멀티테넌트 모델을 기반, 사용자는 요구에 따라 물리 가상의 리소스를 동적으로 할당 받을수 있다. 
하드웨어 통합은 물리적으로 모아 배치하는 위치통합(co-location)이 아닌, 복수의 서버를 단일 플랫폼으로 구성하여 풀링
여러 컴퓨터의 기능을 단일 서버에서 하나의 시스템으로 통합할 때 더 적은 IT 리소스로 더 많은 작업을 할 수 있다. 
- 풀링 : pooling: 저장소인 풀(pool)에서 객체를 관리하고 필요한 사용자에게 할당하여 사용, 사용 후에는 풀로 반환하는 기법. 
- 테넌트 : tenant :  (by 일반적)공동주택에 거주하는 입주자, 
(by 컴퓨팅 환경)단위화 랄 수 있는 한 조직의 인프라 또는 서비스
- 멀티테넌트 모델(다중 소유 모델) : 하나의 서비스를 여러 태넌트가 함께 사용하지만 논리적으로 분리되어 있는 소프트웨어 아키텍처 
- 멀티 태넌시 : multi-tenancy:  논리적으로 분리된 영역 내에서 다중의 사용자에게 개별 프로그램 인스턴스를 제공하여 각 사용자가 독립적으로 사용하게 하는 소프트웨어 프로그램. 
- 싱글 테넌트 : 각 유저마다 독립적으로 분리된 가상화된 환경 사용. 

4. 신속한 탄력성
사용자의 요구에 따라 IT 리소스를 무한대로 확장할 수 있고, 언제든지 축소할 수 있다. 그리고 이러한 작업은 수분 이내로 처리된다.  사용자는 추가 리소스 사용량에 대한 비용만을 추가적으로 부담하여 가용 컴퓨팅 리소스와 요금 측면에서 탄력성을 갖는다. 

5. 서비스 사용량 측정
저장장치, cpu, 네트워크 대역폭 등 다양한 리소스 사용량을 미터링(metering) 하여 클라우드 사용자에게 보고해 투명성 제공, 추가협약에 따른 사용량 제어, 최적화 수행 
장애허용(fault tolerant) 시스템을 구축하여 장애가 발생하여도 클라우드 사용자가 서비스를 지속적으로 받을 수 있는 환경 제공.
ex) Azure의 경우  가상 서버에 대해 시간당 사용료를 책정, 사용하려는 서버의cpu 코어 갯수 , 메모리, 저장장치 용량, 저장장치의 종류등에 따라 사용료가 다르다.
- 장애 발생시
한국 클라우드산업협회 클라우드 표준계약서작성. 
ex) Azure의 경우 SLA의 성능 목표에 따른 가동 중지 시간 명시  99.999% 작동시간 제공. 
DB 10밀리초 미만 대기시간 
*SLA : Service Level Agreement : 측정 지표와 목표등에 대한 협약서. cpu 가동시간, 응답시간, 헬프 데스크 응답시간, 서비스 완료시간 포함. 
3가지 서비스 모델 1. SaaS : Software as a service
클라이언트 사용자에게 소프트웨어를 가상화 하여 제공,
웹브라우저를 통해 실행, 다운로드 설치를 필요로 하지 않음.
- 데이터 센터, 네트워킹 방화벽, 보안, 서버 및 저장소, 운영제체, 개발도구, DB관리, 비지니스 분석, 호스팅 된 응용프로그램 앱 제공. 

-SaaS의 주요서비스
1)ERP: 전사적 자원관리 클라우드 제공서비스
2)CRM: 고객관리 소프트웨어 클라우드 제공서비스
3)SCM: 공급망 관리를 클라우드 제공서비스
4)문서편집 : 문서편집 기능을 클라우드 제공서비스
5)그룹웨어: 메신저, 메일, 전자결재 등 기업 내 또는 기업간 필수 커뮤니케이션 기능 협업기능 클라우드 제공서비스
6) 문서관리 : 기업 효율적 문서관리, 그에 관련된 S/W 클라우드 제공서비스
ex) 구글 앱스.  Notion

2. PaaS : Platform as a Service
사용자가 직접 특정 소프트웨어 자체개발 애플리케이션을 위해 클라우드 제공자로부터 기반 환경 , 플렛폼 제공받는 모델. 
제공자는 물리적 컴퓨팅 리소스 라이브러리, API 등을 제공 및 관리 장애 발생시 복구 및 유지보수에 대한 모든 책임. 
DBaaS : Database as a service 
- 데이터 센터, 네트워킹 방화벽, 보안, 서버 및 저장소, 운영제체, 개발도구, DB관리, 비지니스 분석
ex) 구글 App Engine: 애플리케이션을 빌드하고 배포 가능한 플랫폼 환경 제공
    모바일 게임의 경우 MsSQL 서버 기반의 데이터베이스를 기반으로 플레이어의 데이터 관리

3. IaaS : Infrastructure as a Service
사용자가 운영하고자 하는 서비스에 요구되는 프로세서, 스토리지 용량, 메모리 등의 하드웨어를 상세하게 명시하고 제공, 다른 클라우드 서비스 모델과 다르게 사용자가 가상 인프라와 관련된 컴퓨팅 리소스와 물리적 컴퓨팅 리소스에 대해 고수준의 관리 및 제어 권한을 갖는다. 
- 데이터 센터, 네트워킹 방화벽, 보안, 서버 및 저장소,
ex) 넷플릭스 . 온프레미스환경에서 aws로 이동,  자체적인 스트리밍 기술 보유, 컴퓨팅 리소스에대한 일정수준제어권한만 필요.  시청증가 대응. 

4. 기타 클라우드 서비스 모델 예시
FaaS : Functions as a Service
: 큰 시스템을 구성하는 개별 기능, 비즈니스 로직, 혹은 함수를 클라우드에 등록하고 연산에 처리되는 컴퓨팅 리소스를 클라우드 제공자 측에서 관리
Paas와 유사하게 보일 수 있지만 함수 호출이 요청될때만 연산을 수행하며 요청이 없을 시에는 컴퓨팅 리소스를 사용하지 않는 것이 주요특징 = 과금의 모델도 함수 호출횟수만큼지불
ex) AWS 람다(Lambda), 구글의 클라우드 펑션(Cloud Functions), 그리고 마이크로 소프트의 Azure의 펑션(Functions)
FaaS는 서버리스(Serverless)라고 불리지만, 실제 서버가 없는 것이 아니라, 특정작업(함수)을 실행하기 위해 물리적 컴퓨팅 리소스를 가상화하여 서버로 사용하지 않는 측면에서 서버리스라고 불린다. 
FaaS의 활용으로는 주기적으로 웹 페이지의 데이터를 수집하는 크롤링 작업, 넷플릭스의 경우 동영상을 업로드했을 때 이를 인코딩, 검증, 태깅, 공개하는 작업들과 백업관련 잡업 Lambda를 통해 처리. 

CaaS : Container as a Service 
사용자가 컨테이너 및 클러스터를 구동하기위한 컴퓨팅 리소스 및 그에 따른 기술. 
컨테이너 : 애플리케이션과 이를 실행하기 위해 요구되는 라이브러리, 바이너리, 구성 파일과 같이 운영체제를 제외한 모든 소프트웨어 자원을 묶은 패키지 
일반적으로 개발자가 작성한 애플리케이션을 개인 환경에서 테스트 환경으로 그리고 운영환경으로 이전할 때마다 많은 오류과 시행착오를 겪게 되는데, 이는 각 환경마다 네트워킹, 보안, 스토리지 등등 프레임워크 계층 구성이 다르기 때문 이에대한 기술
ex) AWS의 ECS(Elastic Container Service), Azure Kubernetes Service(AKS)
컨테이너관리 플랫폼 Docker(컨테이너엔진)가 호스트 운영체제의 커널을 통하여 컨테이너를 실행, 따로 가상 머신 이미지 생성하고 그안에 운영체제를 설치하여 리소스를 관리하지 않기 때문에 실행가볍고, 호수트 운영체제를 공유하기 때문에 성능도 호스트환경에서 실행하는 것과 유사하게 나오는장점. 이식성높다. 
ex) GoPro 사 페타바이트 단위의 데이터를 처리하며 이를 위해 수만개 API 요청을 받음 EC2를 사용했으나 ECS로 변경했고 리소스 70%절감했다. 

복합서비스 
VDI :Virtual Desktop Infrastructure 
:소프트웨어를 사용하여 데스크탑을 가상화하고 이를 중앙장치에서 네트워크를 통해 사용자에게 제공하는 서비스. 
OS, 사용자 정보 및 데이터는 IT관리자가 중앙에서 관리하는 서버에서 실행, 저장되고 사용자는 사용자 단말(VDI 이미지의 원격 액세스를 위한 네트워크 연결기기)을 이용해 접근

CDN : Contents Delivery Network
: 게임 동영상 , 애플리케이션 등의 콘텐츠를 글로벌 서버를 구축하여 네트워크 상황과 기기에 맞춰 최적의 속도로 제공하는 서비스.  
4가지 배포모델 1. 프라이빗 클라우드
하나의 기업, 조직, 독립적으로 컴퓨팅 리소스를 소유하는 형태의 배포모델
2. 커뮤니티 클라우드
정책, 혹은 내규에 따른 공통된 보안 요구사항이 있는 여러기업 및 조직 내 구성원들의 커뮤니티가 독점적으로 사용될 수 있도록 컴퓨팅 리소스를 관리하는 형태의 클라우드. 
커뮤니티 자체적으로 온프레미스 환경에서 운영하거나 클라우드 서비스 업체에 의해 제공 받을 수 있다.  
ex)뉴욕 증권거래소 의 자산내역 민감데이터
3. 퍼블릭 클라우드
클라우드 제공자가 소유. 네트워크를 통하여 사용자가 이용할수 있도록 운영. 
데이터에 따라 요구되는 보안정책수준이 다르기 때문에 추가적인 보안 옵션이 필요할 경우 퍼블릭 클라우드를 사용할 수 없게 된다. 
4. 하이브리드 클라우드
퍼블릭클라우드+프라이빗클라우드+온프레미스 결합 배포모델, 데이터, 어플리케이션 공유환경
다양한 클라우드 배포모델 연계, 상황에 적합한 데이터 관리작업. 
보안-> 프라이빗 클라우드
일반사용자& 서비스제공자-> 퍼블릭클라우드
- 클라우드 버스팅 기술: cloud bursting
플라이빗 클라우드 내 사용량 급증시 it리소스 추가 투입할때 퍼블릭클라우드 리소스를 추가하여 사용하는 기술 . 관리책임 분리 등의 이유로 구축관리는 어려움.
- 멀티클라우드 관리 플랫폼
멀티클라우드(여러 서비스 제공자로부터 퍼블릭 클라우드 병행하여 사용하는 모델)관리하는 플랫폼 제안되고 있음. 
클라우드 컴퓨팅 특징 1. 접속용이성 : 시간 장소 상관없이 인터넷통해,  표준화된 접속을 통해 다양한 기기 서비스이용
2. 유연성 : 갑작스런 이용량 증가, 이용자수 변화 중단없이 유연하게 대응
3. 주문형 셀프서비스 : 이용자는 서비스 제공자와 직접 상호작용 거치지 않고, 자율적으로 자신이 원하는 클라우드 서비스 이용가능
4. 가상화와 분산처리 :  컴퓨팅 리소스의 사용성 최적화, 방대한 작업 분산처리로 시스템 과부화 최소화 
5. 사용량 기반 과금제 : 사용량에대해서만 비용지불
   
   
   
   
   

 

728x90
01. 클라우드 컴퓨팅의 이해
클라우드 사전:   구름
확장성, 유연성, 즉시성, 가용성(수요중심), Pay as you go
컴퓨팅 서버, 저장장치, 데이터베이스, 네트워크 및 이메일, 보안, 백업/복구 등의 기업용 소프트웨어
IT 리소스 컴퓨팅 하드웨어 및 소프트웨어를 포괄하는 IT구성요소
Pay as you go IT 리소스를 사용하는 만큼 비용을 지불하는 방식
클라우드 컴퓨팅
= aka . 클라우드
1. 정의 
컴퓨팅 리소스를 필요한 시간만큼 인터넷을 통해 활용할 수 있는 컴퓨팅 방식
=(by 일반적)
인터넷상에 존재하는 클라우드 사업자에 의해 서비스가 제공되는 컴퓨팅 기술
=(by NIST : Natinal Institute of Standards and Technology 미국 국립 표준기술원)
클라우드 컴퓨팅은 컴퓨팅 리소스(서버, 저장장치, 애플리케이션, 네트워크 등) 에 언제 어디서나 필요에 따라 편리하게 네트워크를 통해 접근하는 기능을 제공하는 모델
컴퓨팅 리소스는 최소한의 관리로 신속하게 프로비저닝 되고 배포 될 수 있다. 
클라우드 모델은 5가지 기본특성 3가지 서비스 모델 4가지 배포 모델링으로 이루어진다. 
=(by 가트너)
확장 가능하고 탄력적인 IT 기능이 인터넷을 사용하는 외부 고객들에게 서비스 형태로 제공되는 컴퓨팅 방식
=(by 한국 2017년  제정된 "클라우드 컴퓨팅 발전 및 이용자 보호에 관한법률" )
집적 · 공유된 정보통신 기기, 정보통신 설비, 소프트웨어 등 정보통신 리소스를 이용자의 요구나 수요의 변화에 따라 정보통신망을 통해 신축적으로 이용할 수 있도록 하는 정보 처리 체계 

2. IT 리소스를 소유하는 것이 아니라 렌탈 서비스의 형태로 이용하는 모델
하드웨어 : 물리서버, CPU, 메모리, 네트워크 장비, 저장장치
소프트웨어 : 운영체제, 플랫폼, 유틸리티, 애플리케이션, 그룹웨어 등 
프로비저닝 IT 리소스를 실시간으로 사용 가능한 상태로 만드는, 또는 규격품 형태로 패키징 기술
클라우드 역사 개요 1961년 존매카시의 유틸리팅 컴퓨팅
1970년 인터넷의 시초 알파넷(ARPANET)
1980년 네트워크, 웹개술 발전
1990년 웹기반으로 유틸리티 기능 이전
1996년 컴팩컴퓨터 "인터넷 솔루션 디비전" 처음 클라우드 컴퓨팅 용어 등장
2000년 유휴리소스(idle resource) 활용 통해 원격으로 프로비저닝(Provisioning)되는 실험적서비스
2002년 아마존(amazon.com)의 아마존웹서비스(Amazon Web Services)시작
AWS 의 EC2, S3, 구글의 구글앱스를 시작으로 웹브라우저에서 실행 가능하며 가용성이 향상된 기업용 애플리케이션 서비스 제공.  클라우드 컴퓨팅 대중화 시작 

>>1960년대 개념화된 유틸리티 컴퓨팅을 시작으로 네트워크/웹 기술, 가상화 기술, 프로비저닝 기술, 그리드 컴퓨팅 기술이 발전하여 클라우드 컴퓨팅이 가능해졌다. 
컴퓨팅 기술 발전 메인프레임>PC>클라이언트 서버>인터넷>웹서비스>그리드컴퓨팅>유틸리티 컴퓨팅>클라우드컴퓨팅

- 1980년 메인프레임
: 정보처리 담당 중앙집중식 데이터처리 대형컴퓨터 +  데이터 입출력 표시 기능 담당 터미널로 구성
- 1990년 PC(Personal Computer)
: 클라이언트-서버모델 주류(cs : 중앙 컴퓨가 PC에 데이터 처리 업무를 일부 맡기는 분산형처리 )
- 2000년 그리드컴퓨팅
: 유무선 네트워크 기술의 대중화, 기업 내 시스템이 네트워크와 인터넷 인터페이스, 웹서비스를 활용하여 다른 종류의 컴퓨터들 간에 상호작용을 통한 서비스 지향적 컴퓨팅
- 2010년 클라우드 컴퓨팅
: 전세계 구축된 데이터 센터의 IT 리소스를 필요할 때 필요한 만큼 사용. 
클라우드 등장배경 1. 서버의 유휴 리소스 활용을 통한 효율성 향상_ 빅데이터, 인공지능 영향
: 개별 서버 리소스 사용률 평균 10~15%, 사용하지 않는 컴퓨팅 리소스를 여러 사용자가 공유 70%까지 향상
2. 가상화 기술 , 분산처리 기술 발전, 규모의 경제(큰 규모 운영시 더 효율적으로, 단위당 낮은비용) 
: CPU, RAM, 저장장치 H/W적 발전, 가상화 기술 분산처리 기술 S/W발전 
3. 사용자 맞춤형 서비스, 등 특화된 서비스를 제공하려고하는 사회 트랜드 변화
: 클라우드 컴퓨팅 발전 및 이용자 보호에 관한 법률
: 사회 트렌드 변화로 새로운 서비스를 신속하게 개시  제거
   >> 사용자에게는 IT 투자 비용을 절감하고, 유연한 서비스 설계, 구축 운용비용 경감
서버의 종류와 기능 1. 애플리케이션 서버 : 업무처리 담당, 요청을 받아 업무 규칙에 따라 처리한후 결과 반환기능
2. HTTP 서버 :  기업의 홈페이지 등인터넷 기반 정보제공
3. 데이터베이스 서버 :  조직에서 사용하는 데이터를 무결하게 관리하는 기능담당
4. 메일 서버 : 이메일을 수발신하는 서버  SMTP, POP3, IMAP 등의 프로토콜에 대응
5. DNS 서버 :  도메인 이름과 IP 주소를 변환하는 기능담당
6. 그룹웨어 서버 :  기업에 한정되어 업무처리에 특화된 그룹웨어 기능담당서버
7. 네트워크 관련서버 : DNS 서버, Proxy 서버, NAT 서버 등 네트워크 기동 및 접속에 필요한 기능을 담당하는 서버 
8. 인증서버 : 사용자에게 부여된 권한에 따라 접근을 제어하는 기능 담당. 
온프레미스 On-Premise System
기업이 IT 시스템 운용에 요구되는 데이터 센터에 다수의H/W , S/W 설비를 자체적으로 보유하고 운용하는 방식
=(일반적)
클라우드 기반의 IT 시스템이 아닌 자체 하드웨어를 보유한 것을 의미하며 클라우드의 반의어로 통용
온프레미스
시스템구축
온프레미스 : 요구기능수집 -> 설계 -> 조달 -> 구축 -> 운영 (->시스템확장 : 조달-> 구축 -> 운영)
클라우드    : 요구기능수집 -> 설계 -> 클라우드 서비스(조달 -> 구축 -> 운영)
1. 요구수집
- 용량계획 (capacity planning)  서비스에서 요구되는 하드웨어 등 it 리소스 필요량 추정 확보 계획
- 결핍 (deficit) : 리소스 제공량이 서비스 요구량에 미달된 상태
- 잉여 (surplus) : 리소스 제공량이 서비스 요구량을 초과한 상태
2. 설계
- 피크타임(peak time) : 최대 사용 요구량. 
평소에는 대다수의 it 리소스가  유휴상태인 잉여 리소스가 된다. 
3. 조달
- 조달: 설계 단계에서 작성된 시스템 사양에 맞춰 데이터 센터 구축에 필요한 전체적 구성요소를 실제적으로 구비하는 단계
IT 벤더사를 통해 조달 A사, 회선 B사, 네트워크장비 C사...
4. 구축
기업내의 기술력과 경험을 갖춘 인적 자원활용
5. 운영
H/W, S/W자산의 관리 및 모니터링
데이터 백업 서버실 관리, 시스템 보안 대응
시설관리, H/W임대, 유지보수, 회선, 운영 담당자, 인건비 등다양한 요소의 부대비용

- 직접비용(hard cost)
: 구축 : OS, 하드웨어, 로드밸련싱, 방화벽, 백업, 네트워크장치, 향온, 향습, 전력, 물리보안, 물리공간
- 간접비용(soft cost)
: 유지: 직무교육, 장비관리 인력, H/W& S/W 유지보수
자원
제공량& 요구량
관계
CP 클라우드 제공자 : Cloud Provider
조달> 구축 : 원스톱 제공.
:  클라우드 기반 it리소스 제공하는 기업, 사용 기업과 이용계약, SLA 등과 같은계약을 통해 IT 리소스의 조달및 유지 보수
SLA Service Level Agreement :  사용자 수준 계약  : cp가 서비스 수준 정량화, 미달하는 경우 손해를 배상하도록 하는 서비스 품질 보장 계약 
CapEx [캡팩스] = Capital expense , 자본지출
물리적 인프라에 대한 비용을 초기에 지출, 시간 지남에 따라 납입 고지서에서 비용을 공제하는 지출방식
시간이 지남에 따라 감가삼각.  => 온프레미스
OpEx [옵팩스]= Operational expense, 운영지출
현재 서비스, 제품에 대해 균등하게 지출되어 청구 되고있는 비용, 
초기비용없는 서비스, 제품에 대한 지불. => 클라우드 컴퓨팅(캡팩스에서 옵팩스로 전환)
lift and shift 온프레미스 사용기업 작은업무부터 클라우드로 이관하여 클라우드 기반 시스템을 축적한후 인프라 및 관리 비용을 절감하기 위해 점진적으로 이동하도록 선택할 수 도 있다. 
서비스모델 1. IaaS[이아스] : Infrastructure as a service : CPU, 메모리 등의 H/W 리소스 제공 클라우드 서비스
2. PaaS[파스] : Platform as a Service :  IaaS + OS와 S/W 개발이나 데이터 분석위한 도구들제공
3. SaaS[사스] : Software as a Service :  PaaS + 응용 S/W (애플리케이션) 까지 제공. 
배포모델 클라우드 컴퓨팅 사용하기에 앞서 결정해야 할 사항, 클라우드컴퓨팅 아키텍처를 정하는 일
1. 퍼블릭 클라우드 Public Cloud 
 :  다수의 사용자가 클라우드 제공자가 공급하는 서버, 저장소와 같은 it리소스 공유 사용 모델
ex) AWS, Azure, GCP, Naver Cloud
2. 프라이빗 클라우드  Private Cloud
 : 단일 조직이 독점적으로 데이터 센터를 구축하고 독점적으로 사용하는 컴퓨팅 환경. 
온프레미스방식과 유사하지만, 데이터 센터의 it 리소스를 가상화하여 사용하는 방식, 특정 조직 내에서만 운영되고 접근 가능한 폐쇄적 클라우드
3. 하이브리드 클라우드 Hybrid cloud
 : 둘 이상의 호환되는 여러 클라우드 인프라가 결합되어 사용되는 방식
일반적으로 프라이빗 클라우드의 용량이 부족시 퍼블릭 클라우드의 인프라가 결함되어 사용되는 방식
4. 커뮤니티 클라우드 Community cloud
: 금융권과 같이 여러 조직의 업무와 기능이 유사한 경우, 파트너쉽을 맺고 연합된 조직 또는 코뮤니티가 펴블릭 클라우드와 유사하게 공동으로 데이터 센터를 구축하고 공유된 접근을 허용하는방식. 
장점 1. 탄력성 : 초기 투자 비용 없이 대규모 컴퓨팅 인프라를 확보할 수 있는 탄력성(=탄력적리소스제공)
-it 리소스 프로비저닝 기술, 운영에 관한 세부사항을 실시간으로 "as a service" 사용모델을 제공
2. 신속성 : 몇번의 마우스 클릭만으로 신속성 있게 구축
3. 경제성 : H/W, S/W 소유하지 않아도 서비스 사용가능
4. 신뢰성 : 예측불가능 요구 사용량 대응. 임곗값(threshold)도달 시 서비스 중단에 따른 손실 피함
- 가용성 : availability : 가용성이 높다 = 오랜시간 접근 가능하다. 
- 신뢰성 : reliability :  예외 상황 발생 시 더 욱 신속하고 효과적으로 복구 가능. 
온프래미스의 경우 백업(backup), HA(High Availability: 이중화) 등의 조치 필요 .
단점 1. 보안 취약성 증가
기업의 신뢰 경계를 기업 내부에서 외부 클라우드 데이터 센터까지 확대해야 한다. 
취약점의 증가, 보안 아키텍처 구축이 어려워짐 
클라우드-사용자 연결 네트워크 다운, 공격자의 통신 도청, 중간자 공격, 스푸핑 등의 공격 리스크도 높아짐. 
약의적인 사용자로부터 클라우드 it리소스 내의 데이터를 도용하고 손상시킬 수 있는 기회 제공. 

2. 책임소재 불분명
온프레미스 it리소스 보다 낮은 수준의 관리 제어권한
사용자와 클라우드 제공자 사이의 지리적 거리가 멀수록 네트워크 전달 단계가 많아져 지연시간 발생 및 잠재적 대역폭의 제약
이러한 문제에 대해 클라우드 사용자가 대체하거나 해결할 수 있는 제어권한 없음. 

3. 제한된 이식성
국제표준이 없다.  종속적 솔루션 구축을 할수밖에 없고, 클라우드 이동이 어려운 락인(lock-in)효과가 발생가능하다. 

4. 과도한 비용 지출
- 초기비용에는 유리하나 5년이상 장기간 사용시 온프레미스가 저렴한 경우도 발생. 
- 클라우드 이동비용이 운영비용상회 가능성

5. 규제와 법적 이슈
2015년 클라우드 컴퓨팅 발전 및 이용자 보호에 관한 법률 제정.  (= 클라우드 보급 원인)
-국가기관 등은 클라우드 컴퓨팅을 도입하도록 노력하여야한다. 정부는 '국가정보화 기본법' 에 따른 국가 정보화 정책이나 사업추진에 필요한 예산을 편성할 때에는 클라우드 컴퓨팅 도입을 우선적으로 고려하여야한다. 
- 이용자는 클라우드 컴퓨팅 서비스 제공자에게 이용자 정보가 저장되는 국가의 명칭을 알려주도록 요구할 수 있다.  

>> 퍼블릭 클라우드의 경우 데이터, 비지니스로직 저장되는 실제 위치를 몰라서 개인정보 보호, 데이터 저장소 정책에 관한 규제와 관련 심각한 법적 문제가 될수 있다. 
예를 들어 한국과 영국은 자국민의 개인정보는 반드시 그 국가 내에서 보관되어야 한다고 법적명시
또한 국가사이버안전관리규정, 정보보안 기본지침 등에서 클라우드 환경을 적용할 수 없는 업무 또는 기능을 명시,  심각한 법적이슈 발생가능성이 있다. 
따라서 클라우드 적용의 정도와 범위에 대해 계획단계부터 명확히 할 필요가 있다. 

도입효과 1. 비용절감 : 구축, 인력 비용
2. 시스템 도입과정 단축
3. 구축 , 운영에서 발생하는 문제에서 자유로운 환경 제공- 해외운영 
관련기술 1. 클러스터링 기술 
클러스터 컴퓨터 : 고속 네트워크로 동기화되어 단일 시스템인것처럼 동작하는 독립적인 it리소스그룹
클러스터링 기술 : 이중화와 장애 극복 기능이 내장되어 가용성과 신뢰성을 갖춘 클러스터 컴퓨터 구성하는데 사용하는 기술
전통적으로 H/W와 OS 기반에서 구성가능, 현대에는 이기종(heterogeneous) 환경에서도 구성가능
2. 그리드 컴퓨팅
슈퍼 가상 컴퓨터, 컴퓨팅 리소스가 플랫폼 상에서 논리적 리소스 풀로 등록되어 풀에 포함된 리소스가 집합적으로 고성능 분산 그리드를 제공하는 기술
클러스터링과 다르게 결합성이 매우 작고, 서로 다른 기종 리소스들이 물리적으로 분산되어 있다. 
네트워크 접근, 리소스 풀링, 확장성, 탄력성 측면 영향
3. 가상화 virtualization
컴퓨터 환경상 가상 인스턴스를 만드는 데 사용되는 기술. 
호스트가상화, 하이퍼바이저 가상화, 컨테이너 가상화
4. 서버리스 컴퓨팅 기술
서버리스 컴퓨팅(서버를 생성, 구성, 유지관리 하지 않고, 애플리케이션 코드 실행 할수있는 환경)
서버리스 모델은 각 기능이 실행 할 때 사용하는 IT 리소스의 처리 시간에 대해서만 지불. 
관련기술_3. 가상화 1. 호스트 가상화 
H/W -위->  Host 운영체제 -위-> 가상화S/W -위-> Guest 운영체제
장점 : 구동중인 시스템 변경없이 가장 간편하게 구성,
단점 : CPU나 메모리 사용이 증가하는 오버헤드 발생

2. 하이퍼바이저(hypervisor) 가상화 
H/W -위-> 하이퍼바이저(가상화전담 s/w) -> 게스트 운영체제 
장점 : Host OS 설치 없이 하이퍼바이저가 직접 H/W제어해서 불필요한 CPU, 메모리 사용 줄어든다. 단점 : 여전히 애플리케이션 구동 환경별로 게스트 OS 가 설치  작동, 오버헤드 발생

3. 컨테이너 가상화
H/W -위-> Host OS -위->  컨테이너 엔진 
컨테이너기술(애플리케이션, 구동환경 격리 기술)로 애플리케이션 환경제공
컨테이너기술은 초기에 소프트웨어개발환경, 구동환경 차이로 인한 예상치 못한 오류방지를 위해 등장
애플리케이션과 구동환경만을 가상화 함으로써  가상머신에 비해 훨씬 가볍고 효율적이며 안정적서비스

 

* 그리드 : 격자무늬

격자무늬

* on-premise:현존하는

premise : 전재

* IDC

internet data center  기업의 전산시설을 위탁 관리하는 곳

 

실습 by 한국마이크로소프트 김영욱 부장 
하이브리드는
일반적인 전략
Public 22%  Hybird 69% Private 3%
고객 관리 범위 제공자 관리 Enterprise IT =Legacy It = 온프라미스
: Application, Security, Database, Operating Systems, Virtualization, Servers, Storage, Networking, DataCenters
Infrastructure As A Service = IaaS
: Application, Security, Database, Operating Systems, Virtualization, Servers, Storage, Networking, DataCenters
Platform As A Service = PaaS
: Application, Security, Database, Operating Systems, Virtualization, Servers, Storage, Networking, DataCenters
Software As A Service = SaaS
: Application, Security, Database, Operating Systems, Virtualization, Servers, Storage, Networking, DataCenters

일반적으로 PaaS가 저렴하게 쓰기 쉬운데  IaaS는 고집하는 특별한 서비스가 필요할때 사용. 
SaaS ex) offce365

클라우드 제공모델 Comute :  IaaS
Web & Mobile : PaaS   : 자체로 AutoScaling 가능
Data & Storage : PaaS  
Analytics
Internet of Things & Intelligence
Media & CDN
Identity & Access Management 

Data & Storage : Azure의 경우 기본 3중화 , 파일 입력시 > 복사본 3개생김 > 지역복제시 페어에 3개 기본 6중화 까지
AutoScaling : 사용자를 보고 자동으로 빌려주고 회수함

prevalent [프레밸런트] 일반적인

 

728x90
어노테이션 영어사전: 주석, extra information

1. built-in 어노테이션 : Java 코드에 적용되는 어노테이션 
   ex) @Overried, @Deprecated, @SuppressWarnings, @SafeVarargs, @FunctionalInterface
2. Meta 어노테이션 : 다른 어노테이션에 적용되기 위한 어노테이션(custom-annotation 생성 시)
   ex) @Retention, @Documented, @Target...
meta-annotaiton custom-annotation(커스텀 어노테이션) 생성할 때 주로 사용. 
cf) Meta-Data :  데이터에 대한 데이터
@SpringBootApplication @Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@Target Java compiler 가 annotation이 어디에 적용될지 결정하기 위해 사용. 

ElementType.PACKAGE : 패키지 선언
ElementType.TYPE : 타입 선언
ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언
ElementType.CONSTRUCTOR : 생성자 선언
ElementType.FIELD : 멤버 변수 선언
ElementType.LOCAL_VARIABLE : 지역 변수 선언
ElementType.METHOD : 메서드 선언
ElementType.PARAMETER : 전달인자 선언
ElementType.TYPE_PARAMETER : 전달인자 타입 선언
ElementType.TYPE_USE : 타입 선언
출처 : https://sanghye.tistory.com/39
@Retention Annotation 이 실제로 적용되고 유지되는 범위

RetentionPolicy.SOURCE  소스코드(.java)까지
RetentionPolicy.CLASS     클래스파일(.java) 까지
RetentionPolicy.RUNTIME 런타임 까지

https://jeong-pro.tistory.com/234
@Documented 해당 어노테이션을 javadoc에 포함시킴
@Inherited 어노테이션의 상속 허용 
@Repeatable java8부터 연속적으로 어노테이션 선언가능
   
   

'JAVA' 카테고리의 다른 글

[1028web JSTL ]커스텀 라이브러리  (0) 2022.03.19
VelocityEngine  (0) 2022.02.19
Java 프로그래밍 언어의 코드 규칙, java 표준 코딩  (0) 2021.12.16
[1028web annotation] 어노테이션  (0) 2021.08.29
728x90
암호화 암호화 = encryption = 엔크립션
특별한 지식을 소유한 사람들을 제외하고 누구든지 읽어 볼 수 없도록 알고리즘을 이용하여 정보(평문)를 전달하는 과정.
* 해독 : decryption : 디크립션
https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94
암호화 종류 1. 단방향 암호화
: 역으로 변환하는 것이 불가능
2. 비밀키 암호화 = 대칭키 암호화 = symmetric-key algorithm
: 비밀키를 사용 암호화와 복호화 하는 과정, 송수신자 모두 동일한 암호화 키
3. 공개키 암호화 = public-key encryption =비대칭키(Asymmetric key) 암호화
: 공개키 + 개인키
암호화는 송수신자에게 공개된 공개키를 사용하여 암호화
복호화는 개인키를 가진 사람만 할 수 있다.
비밀키 암호화 방식보다 처리가 느림. 실제 비밀키, 공개키 혼합사용
HMAC =hash-based message authentication code= keyed-hash message authentication code
= 해시함수와 기밀 암호화 키를 수반하는 특정한 유형 메시지 인증코드
ex)HMAC-SHA256 : SHA256(암호화해시함수) HMAC-X(Mac 알고리즘) 사용.
https://ko.wikipedia.org/wiki/HMAC
MAC =맥=message authentication code = 메시지 인증코드
데이터가 변조(수정, 삭제, 삽입) 되었는지 검증할 수 있도록 덧붙이는 코드.
MAC 의 생성과 검증은 반드시 비밀키를 사용하여 수행해야만 한다.
메시지 인증 코드 예
1. SWIFT : 국제 은행간 통신협회
2. IPsec : IP프로토콜에 보안기능첨가
3. SSL/TLS
https://m.blog.naver.com/wnrjsxo/221719726759
SSL Secure Sockets Layer = 웹 브라우저 보안 프로토콜
3.0을 표준화 한것이 TLS 1.0 (SSL, TLS 같은의미사용)
TLS = Transport Layer Security

보안
1. 기밀성 : 훔처도 볼수없다
2. 무결성 : 위변조 여부 확인
3. 인증 : 초기설정 인증서를 통해 신뢰개체 인증.

TLS 사용하는 어플리케이션 프로토콜
HTTPS, FTPS

TLS 세부 프로토콜
1. Handshake : 양쪽 연결 확인 프로토콜
2. Change Cipher Spec : 보안 파라미터(대칭키 알고리즘변경시) 변경 적용시 사용 프로토콜
3. Alert : 오류전송 프로토콜
4. Application Data : 실제 데이터 전송 사용 프로토콜
5. Record : 협상된 보안 파라미터 이용 암복호화, 무결성 등 수행 프로토콜

출처 : https://reakwon.tistory.com/106
TLS 1. TLS 1.0
: 1999년, SSL 3.0의 업그레이드 버전 공개 3.0의 대부분취약점해결.
Window XP, vista, windws server 2003 에서 지원하는 마지막버전
2. TLS 1.1 , DTLS 1.0
2006년 암호 블로 체인공격에 대한 방어, IANA 등록 파라메터지원추가.
3. TLS 1.2 , DTLS 1.1
2008년, SHA2를 사용하도록 변경
4. TLS 1.3, DTLS 1.2
2018년, 서버에서 인증서를 암호화 하여 전달, 최초 연결시 암호화 통신 개시 절차 간소화,
오래된 암호화 기술 폐기
https://namu.wiki/w/TLS
   
   

728x90

출처 : 소스관리 예제로 쉽게 배우는 MySQL 5.x by 정진용

정보 시스템이나 개인이나 단체의 요구를 처리하는데 있어서 중요하다고 인식되는 모든 지식
데이터 지구상에 존재하는 모든 개체들의 개념, 사상, 명령 등을 표현한 것으로 인간 또는 기계가 감지할 수 있도록 숫자, 문자, 기호 등을 이용하여 형식화한 것. 
데이터베이스 데이터베이스
바크만 : 어느 한 조직의 여러 응용 시스템들이 공용할 수 있도록 통합, 저장된 운영 데이터의 집합
C.J.Date : 데이터 베이스는 특별한 기업의 응용 시스템에서 사용하기 위해서 저장된 집합
DBMS
R.Elmasri :  DBMS는 사용자에게 데이터베이슬르 생성하고 유지할 수 있게 해주는 프로그램 집합
데이터베이스 조건 4가지 1. 통합된 데이터(Integrated data) : 동일데이터 중복 안되있음. 
완전히 배제된것이 아니고 최소한의 중복, 통제된 중복을 허용
2. 저장 데이터(Stored data) : 컴퓨터가 접근 가능한 자기테이프와 같이 저장 매체에 저장된 데이터
3. 운영데이터(Operational data) : 어떤 한 조직의 고유 기능을 수행하기 위해 반드시 필요한 데이터
4. 공용데이터(Shared data) :  어느 한 조직의 여러 응용프로그랩들이 공동으로 소유하고 유지하며 이용하는 데이터
데이터베이스 특성 1. 실시간 접근성(Real-time accessibility)
2. 계속적인 변화(Continuous evolution)
3. 동시공유(Concurrent sharing)
4. 내용에 의한 참조(Content reference) : 레코드 위치, 주소가 아닌 사용자 요구 데이터값에 의해 참조
모델 1. 계층 데이터모델(Hierachical Data Model)

   
   
   
주요용어 개체(entity)
애트리뷰트(attribute)
도메인(domain) : 한 속성이 취할 수 있는 모든 값 총칭

   

 

728x90

공통 출처 : https://youtu.be/e6x6DTGWAyY

생성VM > 설정 > 네트워크 
다음에 연결됨 :
1. NAT : Net Address Translation
2. 어댑터에 브리지
3. 내부 네트워크
4. 호스트 전용 어댑터
5. 일반 드라이버
6. NAT 네트워크
7. Cloud Network
8. 연결되지 않음. 
무작위 모드 (promiscous mode)
나와 상관없는 패킷 볼수있는지 여부. 

무작위 모드 : 모두 허용 : 패킷 스니핑(Sniffing) 가능>> wireshark 사용등. 
활성화 >> 어댑터에 브리지, 내부 네트워크, 호스트 전용 어댑터, NAT 네트워크, Cloud Network
Mac주소 48비트 
앞 24비트 제조회사, 뒤 24비트 제조회사에서 붙인 시리얼 
어댑터 종류 : 
1. 어댑터는 최대 8개 5개 째부터 명령어로 추가. 
2. 어댑터 종류 
1. PCnet-PCII                         > AMD 칩기반, window2000, 이전버전
2. PCnet-FAST III                    > AMD 칩기반, 대부분운영체제 호환
3. Intel PRO/1000 MT Desktop  > 비스타, 윈도우즈, 리눅스 호환 <많이씀
4. Intel PRO/1000 T Server       > 윈도우즈 XP
5. Intel PRO/1000 MT Server    
6. 반가상 네트워크(virtio-net)
https://superuser.com/questions/599968/network-adapters-in-virtualbox-virtual-machines
https://docs.oracle.com/cd/E19455-01/806-2606/6jbqgpvt3/index.html
파일 > 환경설정 > 네트워크 
NAT 네트워크 그룹 생성가능
도구 > 네트워크
VirtualBox Host-Only Ethernet Adapter
NAT  Net Address Translation : 네트워크 주소변환
 1) 내부 서로 통신 안됨,  내부에서 외부로 통신 나가기는함, 포트포워딩전에 접근불가. 

아키텍처 :  
인터넷
-> 라우터 (KT, LG, SK 에서 설치) 
-(공인IP)-> 공유기(DHCP) (192.168.0.1/24) ; NAT 기능사용             
    ->  HOST1 (192.168.0.2/24) ->NAT(VirtualBox)[VM1(10.0.2.15/24),VM2(10.0.2.15/24),VM3(10.0.2.15/24)]
    ->  HOST2 (192.168.0.3/24) 
    ->  HOST3 (192.168.0.4/24) 

1. VirtualBox 내 VM 동일 IP
2. VirtualBox 내부에서 서로 통신안됨. 

nmcli d                           >> Network Manager Command-line interface
nmcli d show enp0s3


gateway : 나가는 출구 : 10.0.2.2 : 내부에서 외부는 나갈수 있다. 
NAT 
네트워크
Net Address Translation 네트워크: 네트워크 주소변환 네트워크
 1) 내부(guest) 서로 통신가능, guset 끼리 하나 네트워크로 묶여있음,  외부는 포트포워딩 해야 통신가능
 2) DHCP 서버에서 IP 할당받음, VirtualBox 와 별도

아키텍처 :  
인터넷
-> 라우터 (KT, LG, SK 에서 설치) 
-(공인IP)-> 공유기(192.168.0.1/24)             
    ->  HOST1 (192.168.0.2/24) ->NATNetwork(VirtualBox)[VM1(10.0.2.5/24),VM2(10.0.2.6/24))]+Gateway
    ->  HOST2 (192.168.0.3/24) 
    ->  HOST3 (192.168.0.4/24) 
+DHCP(10.0.2.3/24)

설정
1. 네트워크 그룹생성 : 파일 > 설정 > 네트워크  추가.  myNetwork , 192.168.100.0/24, DHCP  지원, 
2. NAT 네트워크 설정: 생성VM > 설정 > 네트워크 > 어댑터1탭
     > 다음에 연결됨 : Nat 네트워크
     > 이름 : myNatwork

확인
nmcli d show emp0s3 

** 방화벽 있으면 테스트시 추가 설정 필요
Bridged
Networking
스위치와 같은기능을 한다. 
1. 유무선 공유기에서 IP 할당. 하나의 네트워크처럼 사용
> HOST3 -> 유무선공유기 -> HOST1-> VM1 접근가능

아키텍처 :  
인터넷
-> 라우터 (KT, LG, SK 에서 설치) 
-(공인IP)-> 공유기(192.168.0.1/24)           
    ->  HOST1 (192.168.0.2/24) ->Bridged(VirtualBox)[VM1(10.0.2.5/24),VM2(10.0.2.6/24))]
    ->  HOST2 (192.168.0.3/24) 
    ->  HOST3 (192.168.0.4/24) 

호스트 전용 어댑터 Host-Only
1. HOST, Guest 간 통신은 되나 Guest가 인터넷이 안된다. 
2. 내부 네트워크는 단절??

아키텍처 :  
인터넷
-> 라우터 (KT, LG, SK 에서 설치) 
-(공인IP)-> 공유기(192.168.0.1/24)           
    ->  HOST1 (192.168.0.2/24) ->HOST(VirtualBox)[VM1(10.0.2.5/24),VM2(10.0.2.6/24))]
    ->  HOST2 (192.168.0.3/24) 
    ->  HOST3 (192.168.0.4/24) 
내부네트워크  
   
728x90
SSH  Secure SHell, 시큐어셀
L7 계층, `보안 통신`, `포트 포워딩(일종의 터널링)` 등의 기능을 제공
ssh 설치확인 rpm -qa | grep ssh

openssh >> server : 서비스를 해주는 컴퓨터 
ssh 실행확인 ps -ef |grep ssh
자가접속확인 ssh root@localhost
접속 1. virtualbox  해당이미지 . 설정 > 네트워크 > 고급 > 포트포워딩 > 플러스 아이콘
TCP 호스트포트 22 게스트포트 22

2. putty or 그외 ssh 접속프로그램  다운 설치
localhost   22  로 접속
   

 

728x90

 

aws 기준.  1. root 로그인
aws root 사용> $ sudo -s
2. httpd (아파치) 서버 설치
$yum install httpd -y
3. 아파치 실행
$service httpd start
Redirecting to /bin/systemctl start  Redirecting to /bin/systemctl start httpd.service httpd.service
4. 부팅시 프로그램 등록 
$systemctl start httpd.service
$chkconfig httpd on
5. 접속 페이지 생성
$cd /var/www/html/
$vi index.html

<html><h2>Hello Server</h2></html>

 

728x90
예시  설명
SIDR Classless Inter-Domain Routing : (네트워크를) 클래스로 구분하지 않는 도메인간라우팅. 
사이더가 나오면서 네트워크구분을 class로 하지않음.
IP 주소 = 넷IP + 호스트 IP
A.B.C.D/n  A. B. C. D :  0~255  , n은 Cidr 길이. 
255.255.0.0/16 16 : Cidr 길이 = 2진수로 바꿧을 때 NetID(왼쪽부터 1의  길이)
255(10진수) = 11111111(2진수)    (1이 8개)   
   11111111 11111111 00000000 00000000  (= 255.255.0.0,   1이 16개, 16비트)
^ 11111111 11111111 11111111 11111111  (= 255.255.255.255,   1이 32개, 32비트)
--------------------------------------------------
  11111111 11111111 00000000 00000000    >> 마스크를한다. (= 255.255.0.0,   1이 16개, 16비트)

   11111111 11111111 00000000 00000000  (1이 16개)
^ 11111111 11111111 10000000 00000000  (= 255.255.255.128,   1이 17개 17비트)
--------------------------------------------------
  11111111 11111111 00000000 00000000    >> 마스크를한다. (= 255.255.0.0,   1이 16개)
   
255.255.0.0/16는 255.255.0.0  ~ 255.255.255.255 범위를 나타냄.  
A클래스 1.1.1.1/8 : 대규모 네트워크 환경. 디폴트 서브넷마스크255.0.0.0, 호스트 2^24 
B클래스 1.1.1.1/16 : 중규모모 , 디폴트 서브넷마스크 255.255.0.0 호스트 대역 2^16 
C클래스 1.1.1.1/24: 소규모 , 디폴트 서브넷마스크 255.255.255.0 호스트 대역 2^8
클래스 : https://blog.naver.com/skddms/221648907498
사이더 : https://blog.naver.com/ncloud24/221208338209
논리곱 참 ^ 참 = 참
참 ^ 거짓 = 거짓
거짓 ^ 참 = 거짓
거짓 ^ 거짓 = 거짓
사설 아이피 대역 10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255

위키 : 사설아이피 : https://namu.wiki/w/%EC%82%AC%EC%84%A4%20IP

사설 아이피 계산 : https://www.ipaddressguide.com/cidr

                         https://ko.rakko.tools/tools/27/

서브넷 Subnet Mask(Binary,1 X 8 X 4 = 32bit)
(00001000 00001000 00001000 00001000)
Calculation Note netmask Total
Host
8.8.8.8/n
8.8.8.8/32 11111111 11111111 11111111 11111111
(8    8    8    8)
255 255.255.255.255 1
8.8.8.8~8.8.8.8
8.8.8.8/31 11111111 11111111 11111111 11111110
(8    8    8    7)
255 - 1 =
254
255.255.255.254 2 8.8.8.8~8.8.8.9
8.8.8.8/30 11111111 11111111 11111111 11111100
(8    8    8    6)
255 - 2 -1 =
252
255.255.255.252 4 8.8.8.8~8.8.8.11
8.8.8.8/29 11111111 11111111 11111111 11111000
(8    8    8    5)
255 - 4 - 2 - 1=
248
255.255.255.248 8 8.8.8.8~8.8.8.15
8.8.8.0/28 11111111 11111111 11111111 11110000
(8    8    8    4)
255-8-4-2-1 =
240
255.255.255.240 16 8.8.8.0~8.8.8.15
8.8.8.0/27 11111111 11111111 11111111 11100000
(8    8    8    3)
2^7+2^6+2^5=
224
255.255.255.224 32 8.8.8.0~8.8.8.31
8.8.8.0/26 11111111 11111111 11111111 11000000
(8    8    8    2)
2^7+2^6=
192
255.255.255.192 64 8.8.8.0~8.8.8.63
8.8.8.0/25 11111111 11111111 11111111 10000000
(8    8    8    1)
2^7=
128
255.255.255.128 128 8.8.8.0~8.8.8.127
8.8.8.0/24 11111111 11111111 11111111 00000000
(8    8    8    0)
0 255.255.255.0 256 8.8.8.0~8.8.8.255
8.8.8.0/23 11111111 11111111 11111110 00000000
(8    8    7    0)
255 -1 =
254
255.255.254.0 512 8.8.8.0~8.8.8.31
8.8.8.0/22 11111111 11111111 11111100 00000000
(8    8    6    0)
255 - 2 -1 =
252
255.255.252.0 1024 8.8.8.0~8.8.11.255
8.8.8.0/21 11111111 11111111 11111000 00000000
(8    8    5    0)
255 - 4 - 2 - 1=
248
255.255.248.0 2048 8.8.8.0~8.8.15.255
8.8.0.0/20 11111111 11111111 11110000 00000000
(8    8    4    0)
255-8-4-2-1 =
240
255.255.240.0 4096 8.8.0.0~8.8.15.255
8.8.0.0/19 11111111 11111111 11100000 00000000
(8    8    3    0)
2^7+2^6+2^5=
224
255.255.224.0 8192 8.8.0.0~8.8.31.255
8.8.0.0/18 11111111 11111111 11000000 00000000
(8    8    2    0)
2^7+2^6=
192
255.255.192.0 16384 8.8.0.0~
8.8.63.255
8.8.0.0/17 11111111 11111111 10000000 00000000
(8    8    1    0)
2^7=
128
255.255.128.0 32768 8.8.0.0~
8.8.126.255
8.8.0.0/16 11111111 11111111 00000000 00000000
(8    8    0    0)
0 255.255.0.0 65536 8.8.0.0~
8.8.255.255
8.8.0.0/15 11111111 11111110 00000000 00000000
(8    7    0    0)
255 -1 =
254
255.254.0.0 131072 8.8.0.0~
8.9.255.255
8.8.0.0/14 11111111 11111100 00000000 00000000
(8    6    0    0)
255 - 2 -1 =
252
255.252.0.0 262144 8.8.0.0~
8.11.255.255
8.8.0.0/13 11111111 11111000 00000000 00000000
(8    5    0    0)
255 - 4 - 2 - 1=
248
255.248.0.0 524288 8.8.0.0~
8.15.255.255

* Nilai [닐라이] 컴퓨터 값, 평가, 감정, 견적

(4096 % 255 =16)

+ Recent posts