변수: name = "Mike"; 세미콜론은 줄의 마지막에 들어가며 문장이 끝났다는 걸 의미. (생략해도 되나 써주는게 좋음)

         age = 30                문자(string)는 항상 " ",' '(따옴표) 안에 넣어줘야한다. 

 

<경고 하는 함수alert>

alert(name);  →  Mike

<log를 찍는 함수console.log>

console.log(age); → 30

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

→ 위와 같은 변수 정의는 협업할 때 위험. 다른사람이 같은 이름을 사용할 수도 있기 때문.

let / const 를 앞에 붙여줘야 한다

 

1)let

let name = "Mike" ;

//다른 사람 코드,,,

let name = "google";  → 에러 발생. let을 붙일 시에 앞에서 한 번 정의된 이름은 다시 쓸 수 없음. 

 

2) const: 절대로 바뀌지 않는 상수.수정X  (파이, 생일 등) 

   const PI = 3.14;  → 대문자로 적어 '상수' 라는 것을 알림.
   const SPEED_LIMIT = 50;
   const BIRTH_DAY = '2020-01-01';

 

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

자바스크립트에서 변수를 선언할 때, 

   변하지 않는 값은 const

   변할 수 있는 값은 let으로 선언하라.   

    tip) 모든 변수를 const로 선언해놓고, 나중에 변경될 여지가 있는 값들만 let으로 변경해주기. 

 

★변수 정리★

 1) 변수는 문자, 숫자, $, _만 사용 

     const MY_HOME = "...";

     let_ = 1;

     let $ = 3;

 2) 첫글자는 숫자가 될 수 없다.

     let 1stGrade = 'A+';    (X)

 3) 예약어는 사용할 수 없다.

     let let = 99; (X)

 4) 가급적 상수는 대문자로 !

     const MAX_SIZE = 99; 

 5) 변수명은 읽기 쉽고 이해할 수 있게 선언

     let a = 1; (X)

     let userNumber = 3; (O) 

 

반응형

●데이터베이스란?

- '연관'된 데이터의 '집합체'로 나름의 약속, 정의된 '구조'를 가지고

- 여러 명의 사용자나 응용프로그램과 '공유'되고

- '동시'에 접근이 가능해야 하고, 검색과 갱신이 쉽도록 통합되어 관리되어야 한다.

- 이를 위해, 대용량의 데이터를 다루어야 하는 기업에서는 DBMS라는 별도의 소프트웨어를 사용한다. 

 

●DBMS(DataBase Management System): 데이터베이스를 관리하고 운영하는 소프트웨어 시스템

→ DBMS의 핵심 역할은 데이터를 일관성 있게 정확하고 정교하게 관리하는 것

트랜잭션(transaction): 여러 개의 관련 수정 작업이 하나의 작업처럼 전부 덩어리로 처리되거나 아예 전부 처리가 안 되도록 All or Nothing으로 처리되게 하는 것    ex. 계좌이체: 하나의 계좌에서 인출과 다른 계좌로의 입금이 동시에 하나의 작업으로 이루어져야 함. 둘 중 하나라도 실패할 시 전체가 실패.

 

*오라클: 다중 버전 읽기 일관성 모델이라는 독특한 메커니즘을 사용한다. 트랜잭션이 시작된 이후 변경 반영된 데이터를 읽지 않는다는 원칙을 지키려면 변경 반영 전의 데이터를 정확히 찾을 수 있어야 하며, 다중 버전 읽기 일관성 모델은 이를 추적 및 관리하기 위한 정교한 메커니즘. 다중 버전 읽기 일관성 모델에서 관리하는 변경 내역 히스토리 데이터를 스냅숏 데이터라고 부른다.  

 

데이터 '공유' ▶ 동시성 ▶ 일관성 제어 ▶ 데이터베이스의 핵심 기술

 

●관계형 DBMS: 데이터를 행과 열로 구성된 '테이블'에 관리하고 다루는 시스템. 여기서 말하는 '관계' 는 관련성이나 연결의 의미가 아니라, '테이블'을 의미하는 수학적 표현! 

*비관계형 DBMS: 대표적인 것은 그래프 DBMS, 테이블 중심의 관계형과 달리 데이터를 무엇과 무엇의 관계 중심으로 표현

관계형 데이터베이스 → 중복을 최소화하면서 관련 정보만을 테이블이라는 단위로 응집하고 집약해서 관리

 

*연속적이지 않은 블록: 컴퓨터가 파일을 저장하고 갱신할 때 연속적이지 않은 블록 구조를 사용하는 이유는 연속적인 구조보다 파일 쓰기 작업에 효율적이기 때문. 디스크에 데이터를 쓰는 작업은 컴퓨터 시스템 내에서 가장 시간을 많이 소모하는 환경이라서 컴퓨터는 비연속적인 블록 쓰기를 통해 파일 저장 시 시간을 최소화하고 최적화

 

*SQL: 관계형 데이터베이스에 데이터를 입력하거나 수정하는 등의 처리를 위해 데이터베이스의 관리자인 DBMS에 이를 요청하는 데 사용하는 커뮤니케이션 언어 

*NoSQL: Not- Only SQL. 비관계형 데이터베이스. 그래프, 문서, 키-값 등 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'프로그래밍 > IT지식' 카테고리의 다른 글

<궁금한IT>- 02. 빅데이터  (0) 2023.05.28
<궁금한IT>- 01. 메타  (0) 2023.05.25
<궁금한 IT> -김상래  (1) 2023.05.22

*빅데이터로 미래를 예측?

  '예측' 에 대한 보편적인 의미: '미래'를 예측하는 것

  '예측 분석' 에서의 '예측'의 의미: '과거'와 '현재'의 분석  →  과거의 데이터를 통해 '패턴'을 찾아 '현재를 설명'하는 일                                                                                                              (predicting X, forecasting X, detecting O)

 *시계열적 예측: 어떤 현상을 관찰하여 얻은 값을 시간 순서대로 늘어놓은 것으로, 특정 대상의 시간적 변동을 계속 관측하여 얻은 자료에 근거해 그 변동의 원인을 파악, 미래를 예측하기 위한 분석 

 

*빅데이터 처리기술

 1) 빅데이터: 빅데이터는 데이터의 규모가 방대(volume)하고, 생성 주기도 짧고(velocity), 형태도 다양한(variety), 3v를 갖는 대규모 데이터를 말한다고 일반적으로 정의하나, 빅이라는 수사는 모호하고 불필요하며 해롭다. 

 2) 분산 병렬 처리: 대용량의 큰 작업을 중앙집중식이 아닌 다수의 서버 환경에 작은 조각으로 분산해서 동시에 병렬식으로 수행하는 컴퓨팅 방식

 3) 맵리듀스: 대용량 데이터 처리를 위해 구글이 고안한 분산 병렬 처리 기법. ('맵'단계: 표준 크기의 서버에 데이터 분산하여 고속 처리, '리듀스'단계: 분산 처리된 결과를 취합하는 것)

 4) 하둡: 대용량 데이터를 분산 처리할 수 있도록 지원하는 오픈소스 플랫폼으로 맵리듀스는 하둡의 한 부분. 다양한 구성 요소로 이루어져 확장되고 있어 하둡 생태계라고 부르기도 함.

 

*빅데이터의 의의

 빅데이터는 '자연어 처리'에서 그 의미가 있다. → 문자, 사진, 동영상 등 비정형 데이터에서 의미 있는 데이터를 산출

 자연어 처리: 컴퓨터를 이용해 인간의 자연어를 분석하고 처리하는 기술. → ex) 인간의 언어를 이해해 데이터로 처리하여 요청에 대한 응답을 제공하는 챗봇. → 이를 통한 '사고의 확장'에 빅데이터 처리가 의의를 가진다.

 

*데이터 분석 모델 : 만드는 방식이 '프로그래밍 방식' → '인공지능(머신러닝) 방식'으로 변화

*데이터 가치화 

*프리토 타이핑

  Prototype(프로토타입): '우리가 이걸 만들 수 있나' 를 시험 → 그 결과로 최종 목표물을 생산하기 위해 만들어본 시제품

  Pretotype(프리토타입): 특정 서비스나 제품, 공간을 만들기 전에 '이것이 시장에서 원하는 것이 맞나? 시장에서 먹힐까?' 를 빠르게 확인하는 소비자 테스트   ex) 우버, 에어비앤비 

 

 

 

 

 

 

                      

 

 

 

 

 

 

 

반응형

'프로그래밍 > IT지식' 카테고리의 다른 글

<궁금한 IT>- 03. 데이터베이스  (0) 2023.05.29
<궁금한IT>- 01. 메타  (0) 2023.05.25
<궁금한 IT> -김상래  (1) 2023.05.22

*메타버스: 메타(Meta: 가상, 초월, 상위) + 버스(Universe: 우주)

                현실세계와 유사한 사회, 경제, 문화 활동이 이루어지는 가상 초월 세계 

                → '인터넷'의 다음 단계

*메타버스, 메타인지, 메타학습, 메타언어, 메타데이터 등 ... 

과거: 도심 대로변이 좋은 곳 -> 현재: 온라인 공간에서 많은 사람들이 먼저 정보를 찾고 -> 오프라인 공간으로 감

*메타버스 분류:

1) 가상현실(Virtual Reality): 실제 세상과 다른 스크린, 스마트폰, 컴퓨터 속 세계 

2) 증강현실(Augmented Reality): 현실 세계에 정보를 추가  ex.포켓몬고 게임

3) 라이프로깅(Life Logging): 인스타그램, 유튜브 등 온라인에 업로드되는 삶의 스냅숏, 복제 

4) 거울 세계(Mirror World):  실제 세상과 똑같은 복제품이 온라인에 압축된 형태 ex. 내비게이션, 구글 맵, 카카오 맵

▶▶ 이 네가지 개념이 점차 통합된 모습으로 성장할 것. 

 

#탈현실화: 아날로그 현실이 아닌 디지털 현실에서의 삶으로 치우치는 현실. 

                  코로나 팬데믹으로 이러한 탈현실화가 더욱 확대되고 있다. (화상회의, 재택근무 등) 

 

*메타데이터: 데이터를 설명하는 데이터    

 메타데이터가 잘 정의 → 키워드로 검색하기 쉬움      ex) 인스타 해쉬태그

 *프로토콜: 서로 다른 컴퓨터 간 데이터를 주고받을 때 통신 방법에 대한 규칙, 약속 

 ▶▶ 메타데이터는 데이터의 이정표 역할, 프로토콜, 표준 

 

 *트리식 계층 구조

   표준 = 권력자의 몫

*인터넷의 대중화→ 계층적 지식 구조에 변화 → 네트워크 지식 구조

 

▶연결 중심의 네트워크형 지식 구조는 메타데이터로서의 '태그'를 중심으로 지식을 어렵고 복잡하게 구조화하는 대신 지식의 핵심만을 라벨로 붙여 정보와 지식의 관계를 유동적으로 편집, 수평적으로 유연하게 확장될 수 있게 함.

 

*디지털 뉴딜 정책

 : 5G, AI, 클라우드 기반 지능형 정부 구축, 사회간접자본을 '디지털화'하는 방안

  → 도로에 CCTV, IoT(사물인터넷) 센서를 설치하고 도로 등 구조물을 최대한 가상화하여 통합 지도를 그리고, 가상 공간에 현실 공간과 사물의 '디지털 트윈'을 구현→ 실시간 모니터링과 제어 관리를 할 수 있는 체계 구현 

 *디지털 트윈: 컴퓨터 속에서 현실 세계에 대한 디지털 가상 복제본을 만들어 현실 세계에서 발생 가능한 변화를 가상 세계에서 시뮬레이션, 결과를 예측하는 기술 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'프로그래밍 > IT지식' 카테고리의 다른 글

<궁금한 IT>- 03. 데이터베이스  (0) 2023.05.29
<궁금한IT>- 02. 빅데이터  (0) 2023.05.28
<궁금한 IT> -김상래  (1) 2023.05.22

지역변수: 함수 내에서만 쓸 수 있는 변수(함수를 호출했을 시에만 적용)

전역변수: 프로그램 내에서 모두 쓸 수 있는 변수

gun = 10  -> 외부에 있는 수 이므로 [함수 내]남은 총 개수에는 영향을 주지 않음. 

#지역변수
def checkpoint(soldiers):  #경계근무 군인 수
    gun = 20    -> 함 수 내에서 gun의 개수 다시 설정해줘야 함. 
    gun = gun - soldiers   #총 - 경계근무 군인 수 = 총이라는 변수에 넣는다
    print("[함수 내] 남은 총 : {0}".format(gun))   #20-3 = 18

print("전체 총 : {0}".format(gun))  #10
checkpoint(2)   #2명이 경계 근무
print("남은 총 : {0}".format(gun))  #10
#전역변수
gun = 10

def checkpoint(soldiers):  #경계근무 군인 수
    global gun   #전역 공간에 있는 gun 사용-> 즉, gun=10 을 함수 내에서 사용
    gun = gun - soldiers   #총 - 경계근무 군인 수 = 총이라는 변수에 넣는다
    print("[함수 내] 남은 총 : {0}".format(gun))   #10 - 2 = 8



print("전체 총 : {0}".format(gun))   #10
checkpoint(2)   #2명이 경계 근무
print("남은 총 : {0}".format(gun))   #8


#전역변수 사용하는 다른 방법(더 간단한return사용)
gun = 10 

def checkpoint_ret(gun, soldiers):
    gun = gun - soldiers
    print("[함수 내] 남은 총 : {0}".format(gun))  #8
    return gun  -> gun의 수 10 을 return함으로써 사용가능 

print("전체 총 : {0}".format(gun))  #10
gun = checkpoint_ret(gun, 2)  
print("남은 총 : {0}".format(gun))  #10-2= 8

 

반응형

'프로그래밍 > Python' 카테고리의 다른 글

25. 가변인자  (0) 2023.05.24
24. 기본  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
#가변인자
def profile(name, age, lang1, lang2, lang3, lang4, lang5):
    print("이름 : {0}\t나이: {1}\t".format(name, age), end=" ") #end=""->이 구문과 이어서 다음 구문을 출력함
    print(lang1, lang2, lang3, lang4, lang5)

def profile(name, age, *language):   
    print("이름 : {0}\t나이: {1}\t".format(name, age), end=" ")
    for lang in language:
        print(lang, end=" ")
    print()


profile("유재석", 20, "Python", "Java", "C", "C++", "C#", "Javascript")  #이름 : 유재석  나이 : 20   Python Java C C++ C# JavaScript
profile("김태호", 25, "Kotlin", "Swift")                                 #이름 : 김태호  나이 : 25   Kotlin Swift
   ->서로 다른 값을 넣을 때는 *을 이용한 가변인수를 통해서 값을 추출할 수 있다!
반응형

'프로그래밍 > Python' 카테고리의 다른 글

26. 지역변수와 전역변수  (0) 2023.05.24
24. 기본  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
def profile(name, age, main_lang):
    print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(name, age, main_lang))  #\t: tab

profile("유재석", 20, "파이썬")    #이름 : 유재석   나이 : 20   주 사용 언어 : 파이썬
profile("김태호", 25, "자바")      #이름 : 김태호   나이 : 25   주 사용 언어 : 자바

#같은 학교, 같은 학년, 같은 반 수업 일때
def profile(name, age=17, main_lang="파이썬"):   
    print("이름 : {0}\t나이 : {1}\t주 사용 언어 : {2}".format(name, age, main_lang))

profile("유재석")  #이름 : 유재석   나이 : 17   주 사용 언어 : 파이썬
profile("김태호")  #이름 : 김태호   나이 : 17   주 사용 언어 : 파이썬


#키워드값
def profile(name, age, main_lang):
    print(name, age, main_lang)

profile(name="유재석", age=20, main_lang="파이썬")  #유재석 20 파이썬 ->키워드값으로 정의하면 순서 상관없음
profile(main_lang="자바", age=25, name="김태호")   #김태호 25 자바
반응형

'프로그래밍 > Python' 카테고리의 다른 글

26. 지역변수와 전역변수  (0) 2023.05.24
25. 가변인자  (0) 2023.05.24
23. 전달값과 반환값  (1) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
def deposit(balance, money):     #입금
    print("입금이 완료 되었습니다. 잔액은 {0}원 입니다.".format(balance+money))
    return balance + money    #반환 

def withdraw(balance, money):  #출금
    if balance >= money:  #잔액이 출금할 돈 보다 많을 때
        print("출금이 완료 되었습니다. 잔액은 {0}원 입니다.".format(balance - money))
        return balance - money
    else:
        print("출금이 완료되지 않았습니다.잔액은 {0}원 입니다.".format(balance))
        return balance
balance = 0
balance = deposit(balance, 1000)   #입금이 완료 되었습니다. 잔액은 1000원 입니다.
balance = withdraw(balance, 500)   #출금이 완료 되었습니다. 잔액은 500원 입니다.
반응형

'프로그래밍 > Python' 카테고리의 다른 글

25. 가변인자  (0) 2023.05.24
24. 기본  (0) 2023.05.24
22. 함수  (0) 2023.05.24
21. 한 줄 for  (0) 2023.05.24
20. continue/ break  (0) 2023.05.24

+ Recent posts