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
글자 합치기 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
  • 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
자료와 정보의 관계 자료-> 처리(컴퓨터)-> 정보   
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
암호화 암호화 = 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
현상 최초 생성, maven build 에러
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException
검색 https://programmerhoiit.tistory.com/3
해결 <build>
<defaultGoal>install</defaultGoal>
<plugins>

 

728x90

https://www.boostcourse.org/ai100 : 출처 : 부스트 코스 

Operating System 운영체제
: 우리 프로그램이 동작할 수 있는 구동 환경
어플리케이션 > Operating System > CPU  + Memory
<-------소프트웨어-----------------><---하드웨어----->
File system 파일시스템
OS에서 파일을 저장하는 트리구조 저장체계
컴퓨터 등의 기기에서 의미있는 정보를 담는 논리적인 단위, 모든 프로그램은 파일로 구성되어 있고, 파일을 사용한다. (from wiki)

파일 시스템 root 디렉토리 부터 시작하는 트리구조로 되어 있음. 
윈도우 c 
맥 root   (리눅스와 동일)

파일의 기본체계 - 파일 vs 디렉토리
Directory - 폴더(윈도우기준) 또는 디렉토리로 불림, 
- 파일과 다른 디렉토리를 포함 할 수 있음. 
File - 컴퓨터에서 정보를 저장하는 논리적 단위( from wiki)
- 파일은 파일명과 확장자로 식별됨. ex)hello.py
- 실행, 쓰기, 읽기, 등을 할 수 있음. 
경로 컴퓨터 파일의 고유한 위치, 트리구조상 노드의 연결
절대경로 루트 디렉토리 부터 파일위치까지의 경로
c:\user\docs\somefile.ext

백슬러시 _ 윈도우에서만 사용 : 출처 :왜 윈도우에서만 경로에 백슬래시를 사용할까?
상대경로 현재 있는 디렉토리 부터 타깃 파일까지의 경로
../../great
ex) 
../ 이전 경로. 
터미널 mouse가 아닌 키포드로 명령을 입력 프로그램 실행. 
GUI : Graphical User Interface
CLI : Command Line Interface
CLI GUI와 달리 Text 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계

WIndows- CMD window, Windows Terminal
Mac, Linux - Terminal
윈도우 cmder도 권장. (cmder.net)  : 씨엠더 : 리눅스 명령어 윈도우에서 사용가능. 
Console = Terminal =CMD 창
윈도우스토어 우분투 설치 가능. 

어원 : 디스플레이와 키보드가 조합된 장치
현재 : CLI 입력하는 화면
   
기본 명령어 : 각 터미널에서는 프로그램을 작동하는 shell이 존재 > shell마다 다른 명령어를 사용
윈도우 shell 설명
CD cd  현재 디렉터리 이름을 보여주거나 바꿉니다. change directory
CLS clear CMD 화면에 표시된 것을 모두 지웁니다. clear screen
COPY cp 하나 이상의 파일을 다른 위치로 복사합니다. 
DEL rm 하나 이상의 파일을 지웁니다. delete
DIR ls 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다. directory
dir ..
MKDIR mkdir 디렉터리 생성.
> 파일생성

cf) 파일 뒷줄추가.  >>

 

newbies 인터넷상의 게시판이나 동호회에서 활동한 지 얼마 안 되는 사람

missing class 숨겨진클래스 

DL Education  : 

Distributed Learning - 분산학습 : 일정한 시간을 나누어 중간에 휴식을 취하면서 학습하는 방식 from 상담학사전

Win + E : 파일탐색기.  

win + R   : 검색

'Web' 카테고리의 다른 글

[1028 암호화] 대칭키, 공개키, ssl  (0) 2021.08.16
[1028 maven] 에러모음  (0) 2021.07.02
[1028web from boostcourse] 파일 시스템, 터미널 기본  (0) 2021.06.11
[2021 NAVER AI NOW] HyperCLOVA  (0) 2021.05.25
[1028 javascript]  (0) 2021.05.06
[1028 intellij]  (0) 2021.05.06
728x90

 

 

 

HyperCLOVA  by 성낙호 책임리더. 

더보기

: 한국어 초 거대 언어모델

   5600억. 한국어 데이터.... 50년치 뉴스의 양. 

: 700PF 슈퍼컴퓨터. 

: 204B 

: 비지도 학습방법론   cf) 지도 학습방법: 사람이 정해준것을 학습.

규모가 클때 더 효율적일 수도 있었다. 

기존AI 수개월 걸릴것이 몇분만에 해결

 

1. 맥락을 이해하는 자연스러운 대화. 

- 별도 데이터셋 구성할 필요가 없었다. 

- 사용자 만족감 높이는 디테일요소 놓치지 않았다. 

- 20회이상 주고 받는 대화 가능.  완벽하게 문장을 매번만들지 않아도 된다. 

2. 창작을 도와주는 글쓰기. 

- 네이버 상품 소개 : 노출 적합도 채택률 99% 

3. 정보요약

- 여러문서에서 요약해서 보여줌. 

4. 데이터 생성

- AI 만들어준 문장 필터링하는 수준가능. 

- 대화 시나리오 구축생산성 상승.

 

>> AI활용이 빠르고 쉬워짐. 

 

네이버 클라우드 by 황인용

 

더보기

Super Computer

 

GPT-3

대규모 AI서비스를 병렬로 GPT 학습. 

한국어 일본어의 초거대 언어모델 만들고 있다. 

슈퍼컴퓨터.....글로벌 top 500List 상위권. 

1. 고성능 병렬 GPU 클러스터

2. 초 저지연 고대역폭 네트워크

3. 고성능 병렬 아키텍처 스토리지.  : GPU 메모리로 데이터 직접 전송. 일반보다 2배이상 성능. 

향후

슈퍼컴퓨팅 클러스터 확장 x 다양한 AI 가속 솔루션 모색. 

 

Hyper CLOVA를 위한 Big Data 강인호 책임리더. NLP 부서

딥러닝

다양한내용 - 범용의 구성- 양질의 정보 - 충분한크기 .

치우치지 않는 다양한것, 검색, Q&A 생성 등 확용가능. 

한국에 있는전반적인 데이터를 가져와.....

 

- 데이터 구성- 

전문지식

신뢰할수 있는 출처의 오픈된 리소스 : 

검색 헝용된 문서 : 품질순 줄을 세움. 

기반지식 : 객관적사실 

............문서 내용 유사한 경우 중복제거 ::: 한쪽내용 치우치지 않게 하기 위해. 

............개인정보 : 비식별화. 

 

- 범용의 구성: 유의미한 구조로 변경:

질문 : 답변  구조로 재배치. 

메타 정보도 추가. : 화자 ID , 출처정보, 카테고리 정보, 

네이버: 검색로그, 서비스 로그 : 정보성, 신뢰도, 인기있는 출처 상위품질 포함되도록. 

상위 품질 문서에도 ... 웹페이지 핵심영역 판정, 기계학습영역 만들어 포함시킴. 

저품질 문서 필터링, : 의미 없는 단어의 나열, 비속어나 유해정보 제거, 서비스 별 홍보, 스팸 판별결과 활용. 

최종. 1.96 TB. 데이터셋 만듬. .. 상기 중복내용... 

 

기존 NLP 테스트.. 

멀티 모델리티 측면 ... 동영상등... 구축예정.

 

NLP : Natural language processing: 자연어처리 

세계적으로 저명한 인공지능 연구기관 OpenAPI 의 GPT-3 을 뛰어넘는.... 

 

 

 

새로운 글로벌 AI R&D 리더쉽 by 하정우 책임리더. 

더보기

공개된 기술적용 vs 자체 기술 개발. 

글로벌 빅테크 기업 공개한 것 그대로 이용도 효율적일수 있으나 기술 경쟁력 한계

무한경쟁, 무한속도, ..... 글로벌리더쉽 경쟁 어렵다. 

글로벌AI리더쉽 확보 매출 25% 투자. 큰비중 AI

연구 -서비스 선순환구조 : 핵심적 연구성과 나오는중. 

연구 -> 엔진 -> 프로덕트-> 서비스 -> 데이터 -> 연구. 

AI연구 동향 핵심 :Big(모델, 데이터, AI전문가-> 기업중심 연구 생태계) 

학문적 성과... 인턴 연구원, 산학협력 생태계, 연구에서 그치는것이 아니라 직간접적 서비스 적용. 

연구스팩트럼...모델 학습기법 인프라 데이터 .. 옵티마이저, 

 

2018년 한국-일본-동남아... 등.. 글로벌AI연구생태계 구축. 

서울대 AI연구원 , 카이스트 AI 대학원. 

산업적 스케일에 도전적인 AI문제 해결... 글로벌 AI주도권.

 

네이버랩스 유로... 마티아스 갈리..

- 신뢰가능한 AI연구.... VGG(음성연구).... 

 

대규모 한국어 이해 데이터 구축 프로젝트. 

 

 

 

 

 

AI 사람을 위한 일상의 도구 by 송대섭. 

더보기

사람을 위한 일상의 도구. : 네이버의 관점. 

 

AI 윤리준칙. 

 

서울대AI윤리....   함께 만듬. 

 

1. 사람을 위한 AI 개발

2. 다양성의 존중

3. 합리적인 설명과 편리성의 조화

4. 안전을 고려한 서비스 설계

5. 프라이버시 보호와 정보보안

https://www.navercorp.com/value/aiCodeEthics

 

달라진 일상에서 국민의 건강과 안전을 케어하는 도구. ...

Clova Care Call : 해당지역. 접촉자 두차례 전화...

성남시 AI대신수행 십만건. 2천여명 조기발견. ...서울, 경기, 부산...

일상에서 SME (Small and medium enterprise, 중소기업) 의 사업을 도와주는 도구. 

 

Clova AiCall.. 자연어처리-음석인식-음석합성-텍스트 분석... 

 

클러바 램프.  문자인식, 이미지인식, 음성합성, 음석인식, 자연어 처리. 

 

챗봇, 문자인식, 상품추천.. 문서요약.. 그림, 음성데이터...

 

사례 중심의 AI Report 발간.  장기적으로 Progress Report 발간... 

스타트업 <-> SAPI   , 스타트업 지원기관 <-> 네이버

AI 대한 고민과 경험을 사회의 자산으로...

 

 

 

AI Assistant

더보기

.1 대화이해 : 대화 이해 위한 컨텍스트 주입

2. 시스템 응답선택: 시멘팀 검색을 이용한 응답선택

3. 시스템 응답 생성. 

 

 

 

 

네이버 AI 나우

대화 

더보기

페르소나 탐지기  + 캐릭터 대화체 변환기... 

 

 

 

 

 

 

 

선지원.. 노고민 ㅋㅋㅋㅋ

지원할까해서 봤는데.. ....ㅋㅋㅋ 나에게 해당하는이야기는아닌듯. ㅎㅎㅎ

소감.. 주식을 샀다. .......

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

 

전체적인 설명 출처 : velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

1. var, let, const  그리고 hoisting

호이스팅(Hoisting): var 선언문이나 function 선언문 해당 스코프의 선두로 옮긴 것처럼 동작하는특성

             자바스크립트는 모든 선언(var let const function function* class)를 호이스팅한다. 

             * 익명함수는 호출 불가 해서 호이스팅 불가. 

변수 : 선언단계  > 초기화 단계 > 할당단계

 

  var let(ES6) const(ES6)
설명 상수인지 변수인지 구분불가 변수 재선언 재할당가능 변수 재선언,재할당 불가능(상수 constants)
호이스팅 선언단계, 초기화단계 한번에
호출후 선언을 나중에해도 에러발생안됨. 
TDZ(Temporal Dead Zone, 일시적 사각지대) 초기화되지 않은 변수가 있는 곳.  let, const 는 TDZ제약을 받음. 선언 나중에 하면 참조에러발생

TDZ설명 : blog.naver.com/sun_zero2/222036831303

 

 

2. Scope vs Closure

  Scope Closure
내용 유효범위 함수 선언된환경 (렉시컬)스코프 기억하여 함수 스코프 밖에서 실행될때 이 스코프 접근
이해 -전역스코프: 스크립트 전체 참조
-지역스코프:정의된함수내 참조
const counter = function(){
    let count = 0;
    function changeCount(number){
        count += number;
    }
    return{
      increase: function(){
        changeCount(1);
     }
    }
}
counst counterClosure = counter();
counterClousure.increase();
특징 함수단위 
변수명 중복허용
암묵적선언(implied globals) 펑션안에 var없음
Lexical Scoping(Static scoping)-값변경가능.
 
그외 스코프 체인 : 자신이 속한 스코프에서 찾고 그소코프에 식별자 없으면 상위 스코프에서 다시 찾음.   

3. assign 매서드 / Object.assign()

Object.assign() : 열거할수 있는 하나 이상의 출처 객체로부터 대상객체로 속성을 복사할때 사용. 

Object.assign(target, ...sources)

 

var obj1 = {a:1};
var obj2 = {b:2};
var obj3 = {c:3};
var newObj = Object.assign({},obj1,obj2,obj3);
// 출력 : {a: 1, b: 2, c: 3}

4. instantiation Patterns : 상속패턴

  1. Functional           : 함수를 변수에 할당 거기에서 호출사용
  2. Functional-shared : 함수 내부에서 함수 호출해서 사용. 
  3. Prototypal           : var instance = Object.create(선언함수호출)// 특정객체를 프로토 타입으로 생성
  4. Pseudoclassical(고전적인)    : 
var a = function(num){
    this.num = num
};
a.prototype.move = function(){
	this.num +=1;
}

var b = new a(5);
console.log(b.num);//5
b.move();
console.log(b.num);//6

5. ES6

*** 브라우져 지원은 확인해보고 사용할것. (안될경우 bable 로 사용가능 )

 

ECMA  자바스크립트 표준. 

- 새로 추가된 기능

Default Parameters let abc = function(a=false, b=0, c=null){  ....  }
Template Literals 백틱 ` 사용(ESC아래키)
1. const num = "number"; console.log(`num is ${num}`);
2. console.log(`<ul>`)   //특수문자 백슬러시 미사용. 
Multi-line Strings 백틱 ` 사용(ESC아래키) 줄바꿈상태도 사용가능. 
Destructuring Assignment
비구조 할당. 
let abc = {a:1, b:2, c:3}; let {a,b}=abc;   console.log(a);  //1
let abc = [1,2,3]; let [a,b,c]=abc; console.log(a);
spread Operator function sum(x,y,z){return x+y+z;} const num=[1,2,4];
console.log(sum(...num));  console.log(sum.apply(null,num));
RestParameter let multiplybyNum = function(x, ...num) {
    num.forEach(function(n) { console.log(x * n) });
};
multiplybyNum(5,sum.apply(null,num)); //35
Arrow Functions const squares = [1, 2, 3].map(x => x * x); console.log(squares); // 1, 4, 9
Class class a{~~~}   or   let class = class{~~~};
class Cat {
    constructor(name) { this.name = name; }
    speak() {
        console.log(this.name + ' makes a noise.');
     }
}
class Lion extends Cat {
    speak() {
        super.speak();
        console.log(this.name + ' roars.');
    }
}

템플릿리터럴 : poiemaweb.com/es6-template-literals 참조. 

스프레드 오퍼레이터 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax

 

6. Promise

비동기시 사용되는 객체 , 주로 서버에서 받아온 데이터를 화면에 표시할때 사용. 

 

상태 : Pending(대기, 비동기처리로직 미완료) -> Fulfilled(이행, 비동기로직 완료 프로미스 결과값 반환)

                                                          -> Rejected(실패, 비동기 처리 실패, 오류 발생)

 

ie지원이 안된다 참고 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

(2021/05/06 확인)

function promise_function(){
    return new Promise(function(resolve, reject){
      $.ajax({
        url: '/sm/util/ajaxTest',
        data: 'num=10',
        type: 'post',
        dataType: 'json',
        success : function(result){
                var num = result.num;
                resolve(num);
              }
      }); 
    });
  }
    
function firstAjax(num){
    return new Promise(function(resolve, reject){
      alert('첫번째 실행');
      $.ajax({
        url: '/sm/util/ajaxTest',
        data: 'num=20',
        type: 'post',
        dataType: 'json',
        success : function(result){
                var num = result.num;
                resolve(num);
                 
              }
      });
    });
 
  }
 
function secondAjax(num){
    return new Promise(function(resolve, reject){
      alert('두번째 실행');
      $.ajax({
        url: '/sm/util/ajaxTest',
        data: 'num=20',
        type: 'post',
        dataType: 'json',
        success : function(result){
                var num = result.num;
                resolve();
                 
              }
      });
    });
 
  }
 
   
function successFunction(){
  alert('성공');
  return false;
}
function errorFunction(){
    alert('에러');
    throw new Error('에러 발생!!');
  }
   
promise_function()
.then(firstAjax)
.then(secondAjax)
.then(successFunction)
.catch(errorFunction);


출처: https://lee-mandu.tistory.com/437?category=633569 [개발/일상_Mr.lee]

 

 

 

 

 

 

 

 

 

 

 

 

728x90

intellij js 개발환경 실시간 변경

m.blog.naver.com/PostView.nhn?blogId=baekmg1988&logNo=221565323534&proxyReferer=https:%2F%2Fwww.google.com%2F

'Web' 카테고리의 다른 글

[2021 NAVER AI NOW] HyperCLOVA  (0) 2021.05.25
[1028 javascript]  (0) 2021.05.06
[1028 intellij]  (0) 2021.05.06
[1028 도메인설정] 호스팅케이알 도메인/ 서브도메인/이메일 도메인  (0) 2021.05.02
[1028 from 생활코딩 HTML]  (0) 2021.05.02
[1028 운영] 운영 정보 모음  (0) 2021.05.02
728x90

호스팅 케이알 도메인 셋팅

로그인 > 도메인관리 > DNS 설정 최하단 DNS 레코드 관리 수정 아이콘 클릭

 

1.  도메인설정

git page 를 메인 도메인으로 설정 185.199.108~111.153   : https 를 적용할수 있게 된후  ip 주소를 4개 추가하게됨. 

 

2. www.도메인 : 서브 도메인설정

서브도메인 : www

레코드 타입 : CName

레코드값 : 1028web.com

 

3. blog.도메인 : 서브도메인설정

서브도메인 : blog

레코드 타입: CNAME

티스토리 레코드값 host.tistory.io 

 

5. 이메일 주소 설정 : MX레코드

kakao 메일을 회사 계정으로 도메인등록이 "무료"가능했음

레코드 타입 : MX레코드

레코드값 : ASPMX.daum.net  ,  ALT.ASPMX.daum.net

 

 

728x90

 

HTML 하이퍼 텍스트 마크업 랭귀지: 하이퍼 텍스트를 가장 중요한 특징으로 하는 마크업이라는 형식을 가진 컴퓨터 프로그래밍 언어
1990년 팀버너스 고안
target _blank 새탭에서 열기
_self         클릭한 페이지에서 이동
_parent 클릭한 페이지를 연 탭에서 이동
_top         (프레임 개념에서) 전체 프레임 이동
검색에 포함 할 지 안할지 설정 <meta name="robots" content="noindex" />   http://www.naver.com/robots.txt 
SEO 검색엔진 최적화 (SEO: search engine optimization): 검색어 잘검색, 상위노축 목표

1. (기초)명확하고 독창적인 타이틀의 사용, descripttion 메타태그 활용

2. (사이트 구조 개선 )페이지  url 구조 개선, 사이트 내에서 이동하기 쉽게하기

3. (콘텐츠 최적화)적합한 태그 사용

4. (검색 로봇에 대한 대처)검색엔진에 노출되지 않았으면, 노출되었으면 : 원하는 형식으로 검색되도록함

5. (모바일을 위한 최적화)Google 에게 모바일용 사이트 알리기

6. (사이트 홍보와 분석) 웹마스터 도구 활용. 

모바일 화면 맞추기 <meta name="viewport" content="width=device-width, initial-scale=1.0">
a  href anchor  / Hypertext Reference /
li   ui   ol  li(LIST) 태그, 그룹핑 ul(unordered list), ol(ordered list)
<!DOCTYPE html> Document type declaration : 문서 형식 선언 어떤 형식에 문서를 작성했느냐에 따라 적당하게 선택 했으나 HTML5 부터 "<!DOCTYPE html>"단일화됨.
p    br   alt paragraph  팔라그래프, 달락  / a Forced line break / alternative 대체제
option 여러개 선택가능 속성 multiple
파일업로드 폼 <form action="" method="" enctype="multipart/form-data">
메타태그 30초 리프레쉬 <meta http-equiv="refresh" content="30">

 

deprecated 사용안함 duplicate  복제됨


 

 

HTML의 모든것[by 생활코딩]

 

-  하이퍼 텍스트 마크업 랭귀지: 하이퍼 텍스트를 가장 중요한 특징으로 하는 마크업이라는 형식을 가진 컴퓨터 프로그래밍 언어

-  사람 & 웹브라우저 간의 언어 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

<!DOCTYPE html>

<html lang="ko">

<head>

<title>HTML 구조보기</title>

<meta charset="utf-8">

<meta name="description" content="HTML 설명, 분석">

<meta name="keywords" content="html,구조, semantic, SEO">

<meta name="author" content="저자명">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>

<body>

    <header>

        <h1>HTML</h1>

    </header>

    <aside>

        <a

            href="http://www.martinrinehart.com/frontend-engineering/engineers/html/html-tag-history.html"

            alt="HTML 변천사와 통계"></a>

    </aside>

    <nav>

        <ol>

            <li><a href="study_html.html">HTML</a></li>

            <li><a href="step2.html">자료구조</a></li>

            <li><a href="drengineer.tistory.com">만든사람</a></li>

        </ol>

    </nav>

    <section>

        <h1>HTML 이란</h1>

        <ol>

            <li>하이퍼 텍스트 마크업 랭귀지 : 하이퍼 텍스트를 가장 중요한 특징으로 하는 마크업이라는 형식을 가진 컴퓨터  프로그래밍 언어</li>

            <li>사람 & 웹 브라우저 간의 언어</li>

        </ol>

    </section>

    <section>

        <article>

            <h3>&gt;!DOCTYPE html&lt;</h3>

            <p>Document type declaration : 문서 형식 선언, html5 부터 단일화</p>

            <h3>meta태그</h3>

            <p>

                <strong>&gt;meta charset="utf-8"&lt;</strong> charset(문자집합, 문자 규칙) :웹브라우저가 저장방법이 utf-8라고 인식 해석함.

            </p>

            <p>Html 에서 head 는 부가적인 정보 body는 출력내용</p>

            <h3>semantic 의미론적인 태그</h3>

            <p>header, section, article, figure, footer, nav, aside는 자주사용함</p>

        </article>

        <article>

            <h3>HTML의 핵심~!~! a 태그</h3>

            <p>anchor(배의 닷)는 href(Hypertext Reference) 의 주소에 정박해 있음.</p>

            <p>속성 target: _blank(새탭에서 열기), _self(클릭페이지에서 이동), _parent(클릭한 페이지를 연 탭에서 이동), _top(프레임 개념에서 전체 프레임 이동)

            <h3>태그 뜻</h3>

            <p>p(makes a paragraph: 팔라그래프, 단락), h1(makes a heading), span , div 는 뜻 없음</p>

            <p>li(list), ul(unordered list), ol(ordered list)</p>

            <p>src (subsystem controller), alt(alternative, 대체제)</p>

            <p>br(a forced line break)</p>

        </article>

        <article>

            <h3>검색엔진 최적화(SEO: search engine optimization)</h3>

            <p>기능에 맞게 사용 하면됩니다.</p>

            <figure>

                <img alt="robots.txt 파일의 적절한 위치를 보여주는 이미지입니다." class="shadow"

                    height="81"

                    src="//storage.googleapis.com/support-kms-prod/FvuMa2e4rItLKsRFiXPsamBln3HAtN39iKqd"

                    title="robots.txt 파일의 적절한 위치를 보여주는 이미지입니다." width="510">

                <figcaption>Fig.1 - robots.txt</figcaption>

            </figure>

            <p>주소/robots.txt 로 robots(네트워크를 통해 접속하는 소프트 웨어) 접속 유무를 설정가능</p>

        </article>

    </section>

    <footer>

        <details>

            <summary>Copyright 2019.</summary>

            <p>All Rights Reserved.</p>

        </details>

    </footer>

</body>

</html>

 

 

Colored by Color Scripter

cs

* target: 

_blank 새탭에서 열기

_self         클릭한 페이지에서 이동

_parent 클릭한 페이지를 연 탭에서 이동

_top         (프레임 개념에서) 전체 프레임 이동

http://www.naver.com/robots.txt  : 검색에 포함 할 지 안할지 설정  cf) 

   https://support.google.com/webmasters/answer/6062596?hl=ko

* 검색엔진 최적화 (SEO: search engine optimization)

* 모바일 화면 맞추기 : <meta name="viewport" content="width=device-width, initial-scale=1.0">

*html5

  속성 : autocomplete, placeholder, autofocus, required, pattern


 

 

1. HTML 기본 문법과 기본태그기본문법

마크업 - 태그와 밀접

- 태그

강조 : <strong></strong> 

제목: <h1></h1><h2></h2>

 

- 속성

링크 태그 <a></a> 의 속성 href,, target:  title

cf) http://www.tagindex.net/html/frame/a_target.html

 

* target: 

_blank 새탭에서 열기

_self         클릭한 페이지에서 이동

_parent 클릭한 페이지를 연 탭에서 이동

_top         (프레임 개념에서) 전체 프레임 이동

실습1) 

메모장

----------------------------------------------------------------------------------------------------------------------

<h1>오늘의 명언</h1>우리 모두는 <strong>자신의 힘</strong>으로 발견한 내용을 가장 쉽게 익힌다. -

도널드 커누스

----------------------------------------------------------------------------------------------------------------------

입력  확장자".html", 모든파일, UTF-8 로 선택 저장

웹브라우저료 열기

 

 

- 하이퍼텍스트  

 "링크시켜 사용" 문서 내의 특정한 단어가 다른 단어나 데이터베이스와 링크되어 있어 사용자가 관련 문서를 넘나들며 원하는 정보를 얻을 수 있음

웹의 특성 "a 태그"는 anchor 의 약자 (배의 닷) href(Hypertext Reference) 의 주소에 정박해 있음. 

웹의 창시자 : 팀버너스리가 만듬. 

GML(1960) >> SGML >> SGMLguid(팀버너스리 유럽입자물리연구소) >> HTML 1990년 팀버너스 고안

기존 17개 에 팀버너스리가 a 태그를 추가하여 18개 태그의 HTML 을 만듦.  현재 140개 태그 존재

* 맥에서는 텍스트 편집기 사용시 편집> 대체 > 스마트 인용 해제

 

- li(LIST) 태그, 그룹핑 ul(unordered list), ol(ordered list) 태그

 

 

 

<ol>

    <li>기술소개</li>

    <li>기본문법</li>

    <li>하이퍼텍스트와 속성</li>

    <li>리스트와 태그의 중첩 </li>

</ol>

<ul>

    <li>최진혁</li>

    <li>최유빈</li>

    <li>한이람</li>

    <li>한이은</li>

</ul>

 

 

 

- 문서의 구조

Html 에서 head 는 부가적인 정보 body는 출력내용 

 

- DOCTYPE

Document type declaration : 문서 형식 선언

어떤 형식에 문서를 작성했느냐에 따라 적당하게 선택 했으나 HTML5 부터 "<!DOCTYPE html>"단일화됨. 

 

<!DOCTYPE html>

<head>

<title>HTML-수업소개</title>

<meta charset="utf-8>

</head>

<body>

<h1>HTML</h1>

<ol>

<li>기술소개</li>

<li>기본문법</li>

<li>하이퍼텍스트와 속성</li>

<li>리스트와 태그의 중첩 </li>

</ol>

<h2> 수업의 목적</h2>

</body>

</html>

- 개발도구 

: 프로그램을 만들때 사용하는 도구

추천 개발도구 : atom:아톰, sublime text:서브라임 텍스트, bracket:블라켓

 

- HTML의 변천사와 통계

http://www.martinrinehart.com/frontend-engineering/engineers/html/html-tag-history.html

cf) 

deprecated 사용안함

duplicate  복제됨

 

- p태그(paragraph:팔라그래프, 단락) 

 

- br(a forced line break)태그

 

- 이미지 img 태그

html2 부터 시작

무료 이미지 사이트 :pixabay.com

속성  src (subsystem controller), 

       height, 

       alt(alternative, 대체제)

       title : 마우스 올려두면 설명


 

 

2. 표만들기

태그 table : 테이블 선언

태그 td : table data

태그 tr: table row  : 테이블 행

태그 thead

태그 tbody

태그 tfoot   --ex) 합계 , 가우데 넣어도 무조건 제일아래 출력

태그 th

속성 border : 두께 (국경, 둘레)

속성 rowspan n개 행 합치기 : 위아랫 것과 합치기

속성 colspan n개 열 합치기 : 좌우것과합치기

 

cf) makes a paragraph  : p

   makes a heading  : h1

   span , div 는 뜻 없음


 

3. 입력양식 FORM 

:사용자가 입력한 정보를 서버로 전달할 때 사용

- 태그 form

속성 action

속성 name

- 태그 input 

속성 type  의  text, password, submit( : 제출)

속성 value

- 태그 textarea

속성 cols  열의 글자 크기

속성 rows 행의 크기 

- Dropdown List

태그 select

- 태그 option

속성 value

속성 multiple   (속성값 없음  multiple만 적음)  여러개 선택 가능

- 라디오버튼

name 같은것끼리 그룹핑 

 

<input type="radio" name="color" value="red">

<input type="radio" name="color" value="blue">

<input type="radio" name="color">

- 체크박스

name 같은것끼리 그룹핑 

<input type="checkbox" name="color" value="red">

<input type="checkbox" name="color" value="blue">

- Form 버튼

 

 

 

 

<input type="button" name="button" value="버튼" onclick="allert('hello wolrld');">

- Form 리셋

<input type="reset">

- Form hidden

 

<input type="hidden" name="color" value="red">

- Form lable :래이블

이름표 , 이름표를 클릭해도 동일하게 작동

":" 미포함

<label for="id_txt">text</label>:

<input type="text" name="color" value="red" id="id_txt" >

 

":" 포함

<label >text:

  <input type="text" name="color" value="red" > 

</label>

- Form method

form 속성 method 

get, post 

- Form 파일업로드

<input type="file"> 

form 속성 name 은 별도로저장

form 속성 method 는 post로

form 속성 enctype 는 multipart/form-data


 

3. 정보로서의 HTML

 "태그" 초기 18개.. 현재 190개 태그 존재

- font 태그

 : 퇴출된 태그 . 기존사용된것 위해 알고있기만 : "의미" 태그를 위해 font 태그사용 지양 , css를 이용

속성 size : 7~1   7이 제일 큼. 

속성 color red

 

-meta태그

<meta charset="utf-8">   charset(문자집합, 문자 규칙) : 웹브라우저가 저장방법이 utf-8라고 인식 해석함.

<meta name="description" content="생활 코딩의 소개자료"> : 내용의 요약

<meta name="keywords" content="코딩,conding,생활코딩,html,css,javascript"> 

<meta name="author" content="miseong"> 저자

<meta http-equiv="refresh" content="30"> 30초 간격으로 리프레시됨. 

 

-semantic 의미론적인 태그

 

<article> 본문

<aside>  페이지 내용과 관계적은내용

<section> 문서 구획정의(hearder, footer 와 달리 역할을 분명하기 정하기 어려움) 

<figcaption>  삽화 다이어그램 설명

<figure> 삽화 다이어그램 부과적 요소

<figure>

  <img src="pic_trulli.jpg" alt="Trulli" style="width:100%">

  <figcaption>Fig.1 - Trulli, Puglia, Italy.</figcaption>

</figure> 

<footer> footer 섹션

<header> 헤더 섹션.

<main>  문서에서 가장 중심이 되는 컨텐츠를 정의

<mark>  참조나 하이라이트 표시를 필요로 하는 문자를 정의 

<nav>    네비게이션 섹션

<details>

<summary> 요약

 <details>

  <summary>Copyright 1999-2014.</summary>

  <p> - by Refsnes Data. All Rights Reserved.</p>

  <p>All content and graphics on this web site are the property of the company Refsnes Data.</p>

</details>

<time>    시간을 정의 

 

 

4. 검색엔진 최적화 (SEO: search engine optimization)

- 검색엔진이 잘 검색할 수 있도록, 상위에 노출 될 수 있도록 함

 

https://opentutorials.org/module/1892/10995

http://static.googleusercontent.com/media/www.google.com/ko//intl/ko/webmasters/docs/search-engine-optimization-starter-guide-ko.pdf

1. (기초)명확하고 독창적인 타이틀의 사용, descripttion 메타태그 활용

2. (사이트 구조 개선 )페이지  url 구조 개선, 사이트 내에서 이동하기 쉽게하기

3. (콘텐츠 최적화)적합한 태그 사용

4. (검색 로봇에 대한 대처)검색엔진에 노출되지 않았으면, 노출되었으면 : 원하는 형식으로 검색되도록함

5. (모바일을 위한 최적화)Google 에게 모바일용 사이트 알리기

6. (사이트 홍보와 분석) 웹마스터 도구 활용. 

 

Point1. 타이틀 문서안 or li 태그안 동일 문구가 있을 때  타이틀에 있을 때 먼저 노출시킨다. 

Point2. 메타태그 description. 1,2문장 짧은 단락 사용. 

Point3. URL  어떤 콘텐츠에 도달할 수 있는 유일한 정보. >> 알아보기 좋은 주소로 만든다. >> 어떤 콘텐츠인지 한번에 알수있도록 함. 

    피해야 할것 : 불필요한 매개변수, 세션아이디가 있는 url 사용 , 

                      page1 일반적인 페이지 이름, car-seat-cart-seqt:이름이 너무길거나, 반복사용

                     복잡한 디렉토리

Point4. 특정 문서에 도달하기 위한 한가지 형태의 url 사용

   - <link ref="canonical" href="http://localhost/1.html"/> 캐노니컬 : 해당 페이지는 href 내용과 같아. 

   - 301 리다이렉션 

Point5. 사이트 내에서 이동하기 쉽게 만들기. 

  - 크롤링할 때 어떤기준으로 다니는가? 링크들이 잘 작성되어 있어야. 

 - 하위 페이지에 '사이트 이동경로' 링크가 표시됨

     홈페이지>제품구성>렌트용>신생아용

 - 사용자가 url 의 일부를 제거하는 경우 발생할 상황을 고려합니다. 

point6.  사이트 내 쉬운 이동을 위한 권장사항

 - 자연스러운 계층구조

 - 링크(하이퍼텍스트)를 통해 이동하게 함. 

    콤보박스(select) 사용시 자바스크립트를 사용하면 검색엔진은 어떤웹사이로 이동하는지 파악하기 어려움. 

    <select onchange=" 자바스크립트 사용"> 

point7 : 우수한 품질의 콘텐츠와 서비스 제공:  검색엔진이 아닌 사용자를 위한 콘텐츠 작성

- 링크

 

point8 : 앵커 텍스트를 위한 권장 사항

 - 내용을 함축하는 텍스트 선택. :" 페이지", "문서", "여기를 클릭" 과 같은 일반적인 앵커텍스트 사용

 - 페이지URL을 대부분의 앵커텍스트 사용. 

 - CSS 사용시 링크라고 인식되도록 만들것.  : 정보로서 가치 떨어뜨림. 

    cf) text-decoration:none;    밑줄사용않함. 

- 이미지와 제목

point9 :  <img src="" alt""> 이미지 깨질떄 alt(alternative, 대안 태그 )

point10 : 루트 > images  : 일반적인 경로에 이미지 저장하면좋다. 

point11: 이미지에 명확하게 이름으로 사용. 

- robotstxt & stiemap

point12 :  robots.txt : 로보츠.텍스트 효과적으로 사용하기

 

http://www.naver.com/robots.txt

User-agent: * Disallow: / Allow : /$

::: 모든 웹페이지에대해 어떠한 로봇접근을 허용하지 않는다.

robots : 네트워크를 통해 접속하는 소프트 웨어. 

 

https://www.google.com/robots.txt

User-agent: * Disallow: /search Allow: /search/about Allow: /search/static Allow: /search/howsearchworks Disallow: /sdch Disallow: /groups Disallow: /index.html? Disallow: /? Allow: /?hl= Disallow: /?hl=*& Allow: /?hl=*&gws_rd=ssl$ Disallow: /?hl=*&*&gws_rd=ssl Allow: /?gws_rd=ssl$ Allow: /?pt1=true$ Disallow: /imgres Disallow: /u/ Disallow: /preferences Disallow: /setprefs Disallow: /default


 

5. HTML5

 

FORM ::  사용자가 sever 쪽으로 사용하기 위해 사용하기 위한것 (https://opentutorials.org/module/1892/11038)

<< type >>>

color, date, datetime(현재 미사용, 국제표준시), datetime-local(현재 미사용, 현재있는 시간), 

        email, month, number, range(숫자범위 1~10 슬라이드 이동), search(검색 입력창, 표시), tel, time, url, week

- 모바일의 입력

<meta name="viewport" content="width=device-width, initial-scale=1.0">

 width=device-width  디바이스 폭만큼

 initial-scale=1 모바일 화면줌.  화면축소, 확대 하지 않은상태로 웹페이지 시작. 

type =number 타입의 경우 숫자를 입력할때 숫자 키보드를 켜줌. ;; 사용자 입력 정보를 강제할 수 있다. 

<input type="number" min="10" max="15">

- type=submit 클릭시 input 에 강제로 다른 경우를 넣어도 진행되지 않음.

<input type="number" min="10" max="15">

<input type="submit">

-type= date, month, week, time

date : 년월일

month: 년월

week: 몇년도 몇번째 주 

time : 년도 시간

- type=search

검색할 때 쓰는 것이라는 것을 명확하게씀. 

-type=range

슬라이더 생김

-type=email, url

이메일, url 입력시 유용한 키보드 출현

<< 새로운 속성 >>>

autocomplete : form 태그에 있는 모든 입력칸이 자동활성 됨. 

placeholder: 미리 보기 

autofocus :웹페이지가 열렸을 때 사용자 커서가 첫번째 입력양식에 포커싱 되도록

required  필수값

pattern  정규식

<form action="/A"  autocomplete="on">

   <input type="text" name="id" placeholder="아이디를 입력해주세요" autofocus required pattern="[a-zA-Z]">

   <input type="이메일" placeholder="이메일을 입력해주세요">

   <input type="password" name="password" autocomplete="off">

   <input type="submit">

</form>

* 정규식

[a-zA-Z]            알파벳 1글자

[a-zA-Z][a-zA-Z] 알파벳 2글자

[a-zA-Z].           첫자만 알파벳 모든문자 한글자. 

[a-zA-Z].+         첫자만 알파벳 두글자 이상의 모든물자. 

[a-zA-Z].+[0-9]   첫자 알파벳 마지막글자 숫자 세자 이상. 

 

nbsp 뜻 ---  &nbsp;  NO-BREAK SPACE. 

728x90

1. user-agent

developers.whatismybrowser.com/useragents/parse/

 

2. JBoss 버전 마다 필수 스팩

access.redhat.com/articles/113373

 

3.아파치 에러코드

더보기

400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
420
422
423
424
425
426
500
501
502
503
504
505
506
507
508
509
510

 

 

아파치 스톱 실행하면. 사용하지 못하는 에러코드를 심텍스에러로 알려줌. 

400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
420
422
423
424
425
426
500
501
502
503
504
505
506
507
508
509
510

 

 

아파치 스톱 실행하면. 사용하지 못하는 에러코드를 심텍스에러로 알려줌. 

 

4. 개인정Privacy.go.kr

더보기

all deny 정책 : 모든 접근을 차단하고 허용할 것만 선택 인정보책임자, 시스템 운영자 등

 

5. LocalStorage, SessionStorage, cookie

더보기
WebStorage 

- SessionStorage: 임시저장소 : 세션 종료시 삭제, LocalStorage와 나머지 유사 

- LocalStorage: 영구저장소

 

  cookie LocalStorage
정의 인터넷 웹사이트의 방문기록을 남겨 사용자와 웹사이트 사이를 매개해 주는 정보  
특징 4kb
문자열저장
네트워크트래픽비용: 쿠키정보 포함 웹요청(httpOnly)
만료일자
도메인단위 접근제한
5Mb(브라우저마다 차이)
문자열 이외 저장가능
매번서버전소안함
영구저장
도메인단위 접근제한
  function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
    var name = cname + "="; var ca =     document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}
function checkCookie() {
    var user = getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) {
            setCookie("username", user, 365);
        }
    }
}
localStorage.setItem("key", "value"); localStorage.getItem("key"); localStorage.removeItem("key");
localStorage.clear(); 

Cookey, WebStorage 특장 참고 출처: velog.io/@ejchaid/localstorage-sessionstorage-cookie%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

쿠키 소스 www.w3schools.com/js/js_cookies.asp

 

웹스토리지 : en.wikipedia.org/wiki/Web_storage

 

6. 파일질라보다 winscp ... 이것때매 리눅스 안느나. ㅋㅋㅋㅋ

https://winscp.net/eng/download.php

 

 

728x90

www.shellscript.sh/

1. 쉘스크립트 상단

#! /bin/bash

2. 변수선언은 붙여서

var="No Pain"

3. 모니터 출력

echo "###START###"

4. for문

for entry in  /home/sysoper/*
do
    echo "$entry"
done

5. if 문  & 일부문자 같음 

if [[ "$entry" == *"a"* ]]; 
then 
  echo "a "
elif [[ "$entry" == *"b"* ]]; 
then 
     echo "b "
fi 

6. 파일경로 변수 저장

dir_temp="/home/sysoper/temp"

export path=$dir_temp"/dir"

7. 명령어 실행결과 저장

days="$(find $path -type f -printf x | wc -c)" 

8. 파일이름 구하기

file_test="/home/sysoper/temp/dir/test.txt"

filename="$(basename -- $file_test)"

9. substring

day="0909"

changename="${filename:0:13}$day.txt"

10. 더하기 연산

nine=9

six=6

result=$(($nine+$six))

11. 더하기 연산(expr, let)

let "day++"

echo " $nine + $six = `expr $nine + $six` "

 let result =$nine+$six

12. while

days=30

day=1

while (( $days -$day> -1 ))
do

    echo "$day"

    let "day++"

done

13. 출력

echo "$HEADER"
echo "$HEADER" >> ./file_${filename:0:12}.txt

'Web' 카테고리의 다른 글

[1028 from 생활코딩 HTML]  (0) 2021.05.02
[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb]  (0) 2021.04.30
[1028 Docker] 도커 mariadb, vi 외  (0) 2021.04.27
728x90

DRY  WET  KISS  YAGNI

DRY  Don't Repeat Yourself
WET Write Everything Twice
KISS Keep It Simple, Stupid: SImplicity should be a key goal  by kelly johnson
 - Code, Function Class, View, Service, System<
YAGNI You Ain't Gonna Need It Right Feature, Built right   => cost of carry 
Right feature, Built Wrong                                  => Cost of Delay , cost of repair
Wrong featrue                                                 => cost of building
필요하지 않은 기능, 사용하지 않는 기능, 지나치게 미래 지향적인거 쓰지 않는다.  

드림코딩/엘리 /코딩 잘하는 팁 세가지 (이걸 알면 코드가 깔끔해 진다) youtu.be/jafa3cqoAVM

연봉 & 성장 & 기술 의 공통점이 늘어나도록

드림코딩/엘리/ 개발 경력관리 끝장판 🚀 (커리어 관리 노하우)youtu.be/E9_foa4z1iQ

 

테스트 100% 커버리지 방법, 개선 과정. 

토스ㅣSLASH 21 - 테스트 커버리지 100%youtu.be/jdlBu2vFv58

 

redirect vs forward

  Redirect  Forward 
URL변화 URL 변화있음 URL 변화 없음
자원공유 자원공유불가 Web Container의 내부에서 이동하기 때문에 request와 response 객체를 공유
      @GetMapping("/")
    public RedirectView home() throws IOException {
        return new RedirectView("diary/add");
    }  

    @GetMapping("/")
    public ModelAndView home() {
        return new ModelAndView("redirect:diary/add");
    }
    @GetMapping("/")
    public ModelAndView home() {
        return new ModelAndView("forward:diary/add");
    }

출처 : nesoy.github.io/articles/2018-04/Redirect-Forward

 

lombok

@Getter @Setter  
@NoArgsConstructor / @AllArgsConstructor 기본생성자 / 모든필드생성자
@RequiredArgsConstructor 필수값생성자
@ToString(exclude = "password") User(id=1, scores=[80, 70, 100])
@EqualsAndHashCode(callSuper = false) callSuper = false  부모클래스와해시값다름
@Data @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode
@Builder
빌더패턴... 유연한 생성자. 
Customer.builder()
.email("test@test.com")
.auth("A")
.password("11111")
.build();

출처 :projectlombok.org/features/all

빌더패턴 : yoonbumtae.com/?p=2565

RuntimeException vs Exception: custom Exception 생성시 참고

Exception - 체크예외 : Exception 클래스 서브클래스 이면서 RuntimeException 클래스를 상속하지 않는것들
- 언체크예외 : RuntimeException을 상속한 클래스
체크예외가 발생할수 있는 메소드를 사용할때 반드시 예외 처리코드(catch, throws) 함께 작성. 
ex) FileNotFoundException 존재하지 않은 파일이름 사용자 입력시
RuntimeException 주로 프로그램의 오류가 발생했을때, 예외 처리 선택
ex) ArithmeticException  0나눌때
    IndexOutOfBoundsException 배열범위 
   

출처: m.blog.naver.com/PostView.nhn?blogId=serverwizard&logNo=220789097495&proxyReferer=https:%2F%2Fwww.google.com%2F

 

ControllerAdvice, ExceptionHandler

@ControllerAdvice
@RestControllerAdvice
특정클래스 명시가능. 
@RestControllerAdvice = @ControllerAdvice+@ResponseBody
자신이 가진 메소드중 동일예외가 있으면 실행시킴
@ExceptionHandler Exception 발생하면 비지니스 로직 중단/ client 에 어떤 문제가 있었는지 전달 위한 감시자
- @ExceptionHandler(XXXXException.class)
- @ControllerAdvice, @RestControllerAdvice내부 메소드에 사용
- Controller, RestController 만 ExceptionHandler 감시대상 , service 에서 발생해도.Controler감지
- 응답값 컨트롤러처럼 String, ModelAndView 만가능
@ResponseBody 객체로 반환, 일관성있게 만들수 있다. 
   

[Spring] ExceptionHandler velog.io/@hanblueblue/Spring-ExceptionHandler

 

@valid Email 

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package javax.validation.constraints;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.constraints.Pattern.Flag;

@Documented   //도큐먼트에 포함시키세요. 
@Constraint(  // 검증 클래스 추가. 
    validatedBy = {}//클래스명 등록
)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
//~~에 쓸수 있습니다. 
@Retention(RetentionPolicy.RUNTIME)
//런타임때까지만 살아있어요.
@Repeatable(Email.List.class)
//여러개 선언할수있어요. 
public @interface Email {
    String message() default "{javax.validation.constraints.Email.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    String regexp() default ".*";

    Flag[] flags() default {};

    @Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface List {
        Email[] value();
    }
}

payload  요금 징수하중 

 

@Valid vs @Validated

유사하나 Validated의 경우 그룹 구현 가능

docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/annotation/Validated.html

 

POJO : Plan Old Java Object

사용자가 작성하는 클래스들이 해당 프레임 워크에 종속되지 않은것. 

m.blog.naver.com/PostView.nhn?blogId=leeyoon0607&logNo=70141610658&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Java Serializable 직렬화 

직렬화 메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 형식으로 변환하는것
이유 : 
1. 데이터에 저장하거나 통신에는 값형식 데이터(원시, 스택저장)만 가능
2. 참조형식 데이터는 실제 데이터 값이 아닌 힙에 할당되어 있는 메모리 번지주소 가지고 있어
저장 통신 사용불가. 

역직렬화 디스크 저장한데이터 읽거나 네트워크 통신으로 받은 데이터 메모리에 쓸 수 있도록 다시 변환

public static final long serialVersionUID = 10001L;

hub1234.tistory.com/26#:~:text=%EC%A7%81%EB%A0%AC%ED%99%94%EB%A5%BC%20%EC%93%B0%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94,%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EB%A7%8C%EB%93%A4%EA%B8%B0%20%EC%9C%84%ED%95%A8%EC%9D%B4%EB%8B%A4.

 

JPA Serializable

필요하지 않으나 second-level cache entry로 사용될 가능성이 있어서 안전하게 구현하기 위해 구현

discourse.hibernate.org/t/do-i-have-to-use-serializable-for-jpa-and-hibernate-entities/176

 

 

Spring Lifecycle

Filter -dofilter
-dofilter
DispatcherServlet HandlerMapping 에게 Request에 매핑할 Controller받아 옴
view Resolver에게 매핑할 view 받아옴
HandlerMapping 요청받은 controller 찾아 정보리턴
HandlerInterceptor Controller 매핑 되기 전 앞단에서 부가적인 로직 끼워넣는다. 
세션, 쿠키 권한인증로직을 주로 작성
implements HandlerInterceptor
- preHandler                *리턴값 true 주의. 
- postHandler
- afterafterCompletion
- Controller  
- Service  
- Repository DB에 접근하는 객체 DAO : Data Access Object
- Db  
ViewResolver DispatcherServlet 으로 View이름으로 요청받으면 해당 view 리턴

velog.io/@damiano1027/Spring-Spring-MVC-Request-Lifecycle

dispatcher :배치담당자

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();}

: 매핑경로를 /로 주었을때 jsp, html, css 경로 올바르게 처리 위함. 

>> component-scan 재지정 필요. >> 스프링부트 @componentScan. 이용. 실패

>>하기 추가 하니 정상사용. .

출처 : stackoverflow.com/questions/64822250/illegalstateexception-after-upgrading-web-app-to-spring-boot-2-4

@Bean
WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> enableDefaultServlet() {
return (factory) -> factory.setRegisterDefaultServlet(true);
}

 

artifact

: 인공물. :  모듈에 대한 컴파일출력, 종속성포함된 라이브러리, 리소스, 기타 artifact, 개별파일, 디렉토리 아카이브

 

www.jetbrains.com/help/idea/working-with-artifacts.html#artifact_build_options

'Web' 카테고리의 다른 글

[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb]  (0) 2021.04.30
[1028 Docker] 도커 mariadb, vi 외  (0) 2021.04.27
[1028 gradle] 에러모음  (0) 2021.04.27
728x90

ERROR1.

에러  java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver
해결 >> 드라이브 미설치시 에러
>> 커넥트 드라이버(jar)다운 및 설치의 경우 : 여기서 다운받아 import : https://downloads.mariadb.org/connector-java/
>> maven 의 경우
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/2.0.1  >> 선택 우클릭 maven > update

 

      출처
한줄씩 증가하게 업데이트 SELECT @rank:=0;
UPDATE the_bible_verse SET verse_sn=@rank:=@rank+1 ORDER BY bible_publish_sn, bible_sn,  chapter_no, verse_sn;
https://oddly.tistory.com/69

 

 

MySQL, MariaDB


MySQL : 1995년 발표  오픈소스 DBMS , 2010년 썬을 오라클에서 인수할때 같이 넘어감 
MariaDB : 2009년  MySQL 개발자 들이 따로나와 MariaDB 재단을 세워 개발
               기능은 mySQL과 동일, 성능은 더 낫다고 함
                     (오라클인수후 mySQL 기능 추가 가 잘안된다고함)
리눅스 배포판중 페도라, 오픈수세는 MySQL을 버리고 MariaDB장착
https://namu.wiki/w/MySQL
https://namu.wiki/w/MariaDB
데이터 베이스 [1028 데이터베이스] 데이터베이스 기본
   
   
   
   
   
   
   

검토전

1. mysql, / mariadb 사용시 시스템시간 검토필요

더보기

$ select now();

$ set global time_zone = 'Asia/Seoul';

$ set time_zone = 'Asia/Seoul';

 

$ select now();

$ select now();

$ set global time_zone = 'Asia/Seoul';

$ set time_zone = 'Asia/Seoul';

 

$ select now();

2, maria  DB 생성

더보기

  ($ cd C:\Program Files\MariaDB 10.2\bin) // 기존 로컬 사용시

$ mysql -uroot -p

$ create database today10secDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

$ create user 'today'@'today10secDB' identified by '1234';

$ grant all on today10secDB.* to today@localhost identified by '1234';

$ flush privileges;

$ show databases;

$ exit;

$ mysql -u today -p

$ use today10secDB

 

$ status

그외 필요설정 검토. 

  ($ cd C:\Program Files\MariaDB 10.2\bin) // 기존 로컬 사용시

$ mysql -uroot -p

$ create database today10secDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

$ create user 'today'@'today10secDB' identified by '1234';

$ grant all on today10secDB.* to today@localhost identified by '1234';

$ flush privileges;

$ show databases;

$ exit;

$ mysql -u today -p

$ use today10secDB

 

$ status

그외 필요설정 검토. 

 

 

'Web' 카테고리의 다른 글

[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb]  (0) 2021.04.30
[1028 Docker] 도커 mariadb, vi 외  (0) 2021.04.27
[1028 gradle] 에러모음  (0) 2021.04.27
728x90

ERROR 1.

문제 $ psql postgres role postgres does not exist
출처 www.inflearn.com/questions/5647
해결 윈도우 에선 $ psql --username NAME --dbname DBNAME

(su - postgres psql)

ERROR 2.

문제 1)org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

2) $docker ps
Error response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file specified.
출처 blog.joonas.io/173
해결 C:\Program Files\Docker\Docker>"DockerCli.exe" -SwitchDaemon

 

 


도커

리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 
https://ko.wikipedia.org/wiki/%EB%8F%84%EC%BB%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
설치 다운로드 도커 : https://hub.docker.com/editions/community/docker-ce-desktop-windows
1. 파일명 : Docker Desktop Installer.exe   >> 설치 이후에는 컴퓨터 실행시마다 실행됩니다. 
2. WSL 2 installation is incomplete.
cmd 관리자 권한실행
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
다운로드드 커널파일 :  x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지https://aka.ms/wsl2kernel
파일명 : wsl_update_x64.msi
**WSL 2 는 윈도우 10부터 ,
**WSL(Windows Subsystem for Linux) : Windows에서 Linux CLI 실행을 위한 기능
https://docs.microsoft.com/ko-kr/windows/wsl/faq
3. 설치 확인 CMD : 
$docker --version
Docker version 20.10.8, build 3967b7d
참고 : https://thinkingtool.tistory.com/entry/window-10-%ED%99%88-%EB%8F%84%EC%BB%A4-%EC%84%A4%EC%B9%98-%EC%97%90%EB%9F%AC-WSL-2-installation-is-incomplete
도커 기본명령어 docker ps  // 현재 일하는작업
docker ps -a // 모든작업. 

컨테이너 목록보기
docker container ls -a

컨테이너 접속 
docker exec -it 컨테이너명 bash

apt-get(Advanced Packaging Tool: 리눅스 데비안계열 패키지 관리명령어)
$ apt-get update   >> 업데이트(최신화)

도커로 파일이동
docker cp C:/create.sql mariadb:/create.spl

https://docs.docker.com/engine/reference/commandline/cli/


docker restart mariadbC
docker stop mariadbC
docker start mariadbC
docker kill mariadbC


$ docker
Usage: docker [OPTIONS] COMMAND [ARG...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host value         Daemon socket(s) to connect to (default [])
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Commands:
    attach    Attach to a running container
    # […]
vi bash: vi: command not found  >> vi 미설치
1. 도커실행
(root@1e8aa1f0a68b:  << 콘솔 명이 이렇게 시작안되면 docker exec -it 컨테이너명 bash  > 도커실행 )

2.
apt-get update                        > 설치파일 최신화
apt-get install vim
vi 파일명  << 실행
mariadb 1. 설치
$docker pull mariadb  > 최신 마리아디비 가져오기
$docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mariadbC mariadb
docker 컨테이너 실행  -d(백그라우드) -p(포트 3306 접속, 3306 포워딩), -e (환경변수 설정)
--name : 도커 컨테이너 이름, mariadb  다운받은 이미지 이름. 
(docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234  -v /Db/Test/Create/mariadb:/var/lib/mysql  
--name mariadb mariadb)
cf) docker run --name mariadb -e MARIADB_ROOT_PASSWORD=1234 -p 3306:3306 -d mariadbC/server:latest

2. 설치 확인 
$docker container ls -a 


3. 실행
docker exec -it mariadbC bash
mysql -u root -p

4. 데이터 베이스생성
$create database test;

$flush privileges;
$show databases;
$exit

create user 사용자ID identified by 비밀번호;
grant all privileges on 디비이름.* to '계정'@'localhost' identified by '비번' with grant option;


5. DB 대소문자 무시 설정 (bash: vi: command not found 출력시 상기 vi설치 참고)
$vi /etc/mysql/my.cnf
insert : i
최하단 추가 : lower_case_table_names  = 1
저장 : :wq!
$exit
$docker restart mariadbC




6. 덤프 실행
docker exec -i mariadb mysql -uroot -p1234 astron_erd < create.sql

[1028 mysql,mariadb]


참고 링크  : https://kdinner.tistory.com/27
재시작 설정 docker update --restart {no,on-failure,unless-stopped,always} container_name
참고링크 : https://www.reddit.com/r/docker/comments/ggdbs5/auto_start_containers_windows/

하기는 정리 전. 

terms.naver.com/entry.naver?docId=3586075&cid=59277&categoryId=59282

 

<<--가장 쉽게 배우는 도커youtu.be/hWPv9LMlme8   내용 시작. -->>

Front-End, Back-End, Database

개발용 컴퓨터, 서버용 컴퓨터.  동일하게 설치됨. 

Q 집에서 여러 서버 버전이 여러개? 

>> 가상환경. 으로 나눔.   ... 컴퓨터자원이 환경마다 제한, 서버에 중복기능 많아짐. 

>> 도커 : 컨테이너.   업무공간으로 활용하는 여러개 컨테이너를 만듬. 낭비 줌.  

Q 서버, 로컬 개발환경을 각각설치?

>> 도커 : 동일하게 설치 가능. 

 

설치

1. 

www.docker.com/get-started   여기서 Installer.exe 설치. 

docs.microsoft.com/.. wsl> 도커 설치 중.._update_x64.msi 설치

설치후 CMD

>docker --version
Docker version 20.10.5, build 55c4c88

 

2.

윈도우 사용자 내부에 폴더 생성. 

VS CODE  >> Terminal > new Terminal > 

git clone https://gitlab.com/yalco/practice-docker.git 

이미지 >> 무한생산 가능한 컨테이너 조립 키트. 

CLI >> 명령 줄 인터프리터(command-line interpreter)

<<--가장 쉽게 배우는 도커youtu.be/hWPv9LMlme8   내용은 여기까지.. 노드안써서 -->>

 

 

 

postgres  설치 실행 

더보기

docker run -it node   // 

docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1111 -d postgres

docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=username-e POSTGRES_DB=springdata --name postgres_boot -d postgres

 

>> 

docker run -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=day -e POSTGRES_DB=diaryDB --name postgres_boot -d postgres

docker run -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=day -e POSTGRES_DB=diarydata --name postgres_diary -d postgres

 

>5432/tcp   postgres_boot


C:\Users\miseong>docker start postgres_diary
postgres_diary

 

C:\Users\miseong>docker exec -i -t postgres_diary bash
root@b1de21ce08f0:/# su - postgres
postgres@b1de21ce08f0:~$ psql --username day --dbname diarydata

 

docker ps  // 현재 일하는작업

docker ps -a // 모든작업. 

docker stop mariadb    정지 

 

docker container ps -a

docker container rm f00324f6f9c7

docker images  이름

docker image rm 아이디

 

docker exec -i -t mariadb bash    >>  bash 실행 

 

 

 

 

mysql -umariadb -p

 

도커 재기동

더보기

postgres_diaryC:\Users\miseong>docker ps -a
CONTAINER ID   IMAGE      COMMAND                  CREATED      STATUS                        PORTS                    NAMES
b1de21ce08f0   postgres   "docker-entrypoint.s…"   2 days ago   Exited (255) 36 minutes ago   0.0.0.0:5432->5432/tcp   postgres_diary

C:\Users\miseong>docker start postgres_diary
postgres_diary

C:\Users\miseong>docker exec -i -t postgres_diary  bash
root@b1de21ce08f0:/# su - postgres
postgres@b1de21ce08f0:~$ psql --username day  --dbname diarydata
psql (13.2 (Debian 13.2-1.pgdg100+1))
Type "help" for help.

diarydata-# \dt
        List of relations
 Schema |  Name   | Type  | Owner
--------+---------+-------+-------
 public | account | table | day
 public | study   | table | day
(2 rows)\

 

 

sudo , sudo -s, sudo su , su 계정, su - 계정

더보기

$ sudo 명령어  >> sudo는 권한만 잠시

$ sudo -s

$ sudo su    >> sudo -s 또는 sudo su 명령어를 통해 root 계정을 반영구적으로 빌릴 

su   계정명 >> 현재 사용자를 로그아웃하지 않은 상태에서 다른 사용자의 계정으로 전환하는 명령어이다.

su - 계정명 >> 환경변수 까지 완전히 다른사용자것으로 사용. 

 

리눅스 명령어 sudo , su , su -    www.leafcats.com/168

'Web' 카테고리의 다른 글

[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb]  (0) 2021.04.30
[1028 Docker] 도커 mariadb, vi 외  (0) 2021.04.27
[1028 gradle] 에러모음  (0) 2021.04.27
728x90

1. gradle 기본적인 SpringBootApplication 클래스인식못함

event

gradle 기본적인 SpringBootApplication 클래스인식못함

finding info top100itw.medium.com/intellij-gradle-build-%EC%98%A4%EB%A5%98-ad71de3c9ced
solution .idea를 삭제

 

 

2. gradle 실행시 비정상작동 

event 인텔리제이 gradle 실행후 테스트가 완료가 안되고 오류메시지. 
INFO: 0 containers and 4 tests were Method or class mismatch
finding info

인텔리j 
intellij-support.jetbrains.com/hc/en-us/community/posts/360004383639-How-to-add-Gradle-options

You can control the verbosity of warnings on the console with the following options:

-Dorg.gradle.warning.mode=(all,fail,none,summary)

Specify warning mode via Gradle properties. Different modes described immediately below.

--warning-mode=(all,fail,none,summary)

Specifies how to log warnings. Default is summary.

Set to all to log all warnings.

Set to fail to log all warnings and fail the build if there are any warnings.

Set to summary to suppress all warnings and log a summary at the end of the build.

Set to none to suppress all warnings, including the summary at the end of the build

docs.gradle.org/6.8.3/userguide/command_line_interface.html#sec:command_line_warnings

devmainapps.blogspot.com/2020/06/use-warning-modeall-to-show-individual.html

solution Build, Execution, Deployment > Compiler > shared build process VM option

--warning-mode=all 추가. 

log: 

4월 27, 2021 2:41:15 오후 org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7
INFO: 0 containers and 4 tests were Method or class mismatch
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 5s

'Web' 카테고리의 다른 글

[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb]  (0) 2021.04.30
[1028 Docker] 도커 mariadb, vi 외  (0) 2021.04.27
[1028 gradle] 에러모음  (0) 2021.04.27

+ Recent posts