第11週コードstaitz-深化[Linux]準備テスト[データ構造/アルゴリズム]符号化/[データベース]関係データベース


本当に複雑な1週間でした.以前学んだLinuxは、いくつかの深化した内容を学び、アルゴリズム問題の高度な内容とバックグラウンドデータベースを学びました.一番面白い部分はやはりデータベース部分です.アルゴリズムの問題は基本的な枠組みだけを知っていれば、問題を解決するのは難しくないが、同僚の本当に重要な部分であることを改めて強調した.🤨 一人で勉強するときはもっとよくて、いろいろな方法のコードを書いて、復習の過程でとても役に立ちます.
学習に関係なく、学習グループのメンバーと一緒に小さなプロジェクトを行っており、本当に総合的な学習の1週間です.学習内容を直接実施・実行する際にエラーが発生し,データの受信・送信時にまだ完全に整理されていない場合にコードを記述するため,複雑な点が多い.しかし、間違ったところを見て修正され、新しい機能が追加されて正常に動作し、達成感が大きい.😍 次のプロジェクトをどのように始めるべきかを明確に知っています.これは各方面から啓発された1週間です.

11週間勉強した内容の中で整理したい内容


[Linux]深化

  • 파일과 폴더 권한 확인->ls-l、コマンドchmodを使用してフォルダまたはファイルの読み取り、書き込み、実行権限を変更できます.
    ->If、オペレーティングシステムにログインしているユーザーがフォルダまたはファイルの所有者と異なる場合はsudoを使用します
  •          drwxrwxrwx => d/rwx/rwx/rwx => directory(파일인 경우 -)/owner/group/other         r: read permission. w: write permission, x: execute permission
  • Symbolic method
  • Acess classoperatorAcess typeu(user)+ (add acess)r (read)g(group)- (remove access)w (write)o(other)= (set exact access)x (execute)a(all)
    ex) chmod g-x filename chmod a=rw hello.js chmod a+rx hi.js
  • Absolute form
  • PermissionNumberRead (r)4Write (w)2Execute (x)1
    ex) chmod 744 hello.js chmod 310 hi.js
  • 터미널에 export로 환경변수 확인 & 추가 가능 : export check="well"
  • echo와 환경변수 입력 시 값 확인 가능 : echo $check
  • dotenv 설치 시 자바스크립트에서 환경변수 사용 가능 : npm init => npm i dotenv
  • Node.js에서 환경변수 영구 적용 : .env
  • [データ構造/アルゴリズム]符号化のテストの準備

  • 순열, 조합, 중복순열 모두 같은 로직
  • 1個選択
  • 選択以外はn-1個=>設定手順差異のみ
  • 순열(nPr)
    
    function permutation (arr, selectNum) {
      let result = [];
      if (selectNum === 1) return arr.map(el => [el])
      
      arr.forEach((v, idx, arr) => {
        const fixer = v
        const restArr = arr.filter((_, index) => index !== idx)
        const permuationArr = permutation(restArr, selectNum-1)
        const combineFixer = permuationArr.map(el => [fixer, ...el])
        result.push(...combineFixer)
      })
      return result
    }
    
    
    
    
    
    중복순열(nπr)
    
    function permutation (arr, selectNum) {
      let result = [];
      if (selectNum === 1) return arr.map(el => [el])
      
      arr.forEach((v, idx, arr) => {
        const fixer = v
        const restArr = arr
        const permuationArr = permutation(restArr, selectNum-1)
        const combineFixer = permuationArr.map(el => [fixer, ...el])
        result.push(...combineFixer)
      })
      return result
    }
    
    
    
    
    
    조합(nCr)
    
    function combination (arr, selectNum) {
      let result = [];
      if (selectNum === 1) return arr.map(el => [el])
      
      arr.forEach((v, idx, arr) => {
        const fixer = v
        const restArr = arr.slice(idx+1)
        const combinationArr = combination(restArr, selectNum-1)
        const combineFixer = combinationArr.map(el => [fixer, ...el])
        result.push(...combineFixer)
      })
      return result
    }
    
    
    
    
    
    멱집합(2^n)
    
    const subsets=(nums) => {
      const res = []
      const dfs = (start = 0, arr = []) => {
        res.push(arr)
        for(let i = start; i<nums.length; i++) {
          dfs(i+1, [...arr, nums[i]])
        }
      }
      dfs()
      return res
    }
    
    
    
    
    
    최대공약수(GCD)
    
    const gcd = (a, b) => a % b === 0 ? b : gcd(b, a % b)
    
    
    
    
    
    최소공배수(LCM)
    
    const lcm = (a, b) => a*b/gcd(a, b)

    [データベース]リレーショナル・データベース

  • SQL(Structured Query Language):データベースに適したプログラミング言語で、必要なデータを取得または挿入するためにデータベースにクエリーを送信する
  • 데이터베이스 관련 용어
  • CREATE DATABASE (TABLE)
  • DROP DATABASE (TABLE)
  • TRANCATE TABLE=>復旧不可
  • DELETE TABLE (WHERE)
  • ALTER TABLE (ADD, DROP)
  • 중복된 값 제거
    SELECT DISTINCT country FROM Customers
    
    
    
    업데이트
    UPDATE Customers
    SET City='Oslo'
    
    
    
    제거
    DELETE FROM Customers
    WHERE Country = 'Norway'
    
    
    
    최대, 최소, 평균, 합계
    SELECT MIN (Price)	=> MAX, AVG, SUM
    FROM Products
    
    
    
    특정 값 조건
    SELECT * FROM Customers
    WHERE NOT City ='Berlin'
    
    
    
    데이터 갯수
    SELECT COUNT(*)
    FROM Products
    WHERE Price = 18
    
                 
                 
    특정 단어 배열 조건
    SELECT * FROM Customers
    WHERE City LIKE 'a%'	=> '[acs]%', '[a-x]%', '_a%'
                 
    
                 
                 
    정렬             
    SELECT * FROM Customers
    ORDER BY City DESC
    
                 
                 
    특정 값 여러개 설정             
    SELECT * FROM Customers
    WHERE Country IN ('Korea', 'USA')
    
    
    
    범위 지정
    SELECT * FROM Products
    WHERE Price BETWEEN 10 AND 20
    
    
    
    별칭
    SELECT *
    FROM Customers AS Consumers
    
    
    
    결합
    SELECT * 
    FROM orders 
    LEFT JOIN Customers 
    ON orders.CustomerID = Customers.CustomerID
    
    
    
    그룹화
    SELECT COUNT(CustomerID),
    Country
    FROM Customers
    GROUP BY Country
    
    
    
    
    <SELECT문의 실행순서>
      FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
               
  • 관계형 데이터베이스 / 비관계형 데이터베이스
  • 관계형데이터베이스(SQL) : 테이블의 구조와 데이터 타입을 사전에 정의. 알맞은 형태의 데이터만 삽입 가능
    		      행과 열로 구성된 테이블에 데터 저장
    		      원하는 정보를 쿼리할 수 있음 => 스키마 뚜렷 (테이블 간의 관계를 직관적 파악)
    
    
    
    
    비관계형데이터베이스(NoSQL) : 데이터가 고정되어 있지 않은 데이터베이스
    			 데이터를 읽어올 때 스키마에 따라 데이터를 읽어옴
    
                 
    
                 
                 
    <관계형데이터베이스 기본키워드>
      
      - 데이터(data): 각 항목에 저장되는 값
    
      - 테이블(table or relation): 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적
      
      - 칼럼(column or field): 테이블의 한 열을 가르킴
      
      - 레코드(record or tuple): 테이블의 한 행에 저장된 데이터
      
      - (key): 테이블의 각 레코드를 구분할 수 있는 값. 각 레코드마다 고유한 값 존재
    	    기본키(Primary key) / 외래키(Foreign key) 
  • 트랜잭션:複数のタスクを組み合わせた実行ユニット(全タスク完了→正常クローズ)
                    データベーストランザクションにACID属性がある
  • <ACID>
    
    Atomicity(원자성): 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있도록 함
    		  부분적 실패 => 전부 실패
    
              
    Consistency(일관성): 데이터베이스의 상태는 이전과 같이 유효해야 함
    		    유효한 상태는 다를 수 있음 but, 상태에 대한 일관성 변하지 않음
    
                
    Isolation(격리성, 고립성): 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 함
    			트랜잭션이 동시에 실행 or 연속실행시 데이터베이스 상태 동일
    
                
    Durability(지속성): 트랜잭션이 실행, 오류 발생시도 해당 기록은 영구적이어야 함
  • 1:1관계:一方のレコードが他方のテーブルの一方のレコードに関連付けられている
  • 1:N관계:1つのレコードが複数の異なるレコードに関連付けられている場合
  • N:N관계:複数のレコードが他のテーブルの複数のレコードと関係がある場合
  • 자기참조관계