본문 바로가기

verdantjuly/Today I Learned

TIL 20240925

728x90

이번 주 목표  Weekly Plan

최종 프로젝트에서 하고 싶은 기술 생각해 보기

오늘 목표  Daily Plan

클라우드 기반 생성형 AI활용 웹개발자 강의 수강

최종 프로젝트에서 하고 싶은 기술 생각해 보기

오늘 한 것  Done Today

클라우드 기반 생성형 AI활용 웹개발자 강의 수강

오늘 스케줄  Today's Schedule

6:00 운동

7:00 준비

7:30 출발

9:00 도착

10:00

클라우드 기반 생성형 AI활용 웹개발자 

학습

5:00 귀가

7:00

추가 학습

11:00 휴식

12:00 취침

0. 연산의 우선 순위

  1. 단항연산자 -
  2. ()
  3. 산술연산자
  4. 비교연산자
  5. 논리연산자

1. 증감 연산자

알게된 것 Learned

num++ 필요한 작업 해당 변수의 값을 증가 (후치)

++num 해당 변수의 값을 증가후 필요한 작업수행(전치)

 

* 현대식 코딩에서는 잦은 버그로 인해 증감연산자의 사용을 지양한다.

 

2. 프로그래밍 언어

알게된 것 Learned

 

프로그래밍 언어 : 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어

기계가 알 수 있는 것은 이진수 뿐임

초창기에는 이진수로 프로그래밍 함

사람이 알 수 있는 언어로 작성 후 기계가 이해할 수 있는 이진수로 바꿔주는 컴파일이라는 과정을 거침

고급언어일수록 인간의 언어와 유사함

이진수 > 어셈블리어

3. 프로그래밍 언어의 분류

알게된 것 Learned

  • 구조적 프로그래밍 (순차적 실행) : Algol,. Fortran Basic, C
  • 객체지향 프로그래밍 : SmallTalk , C++, Java, Objective-C
  • 함수형 프로그래밍 : Haskell, Lisp, Erlang
  • 객체지향, 함수형 : Java, Javascript. Python, Swift …

4. 명령어 해석 방식

알게된 것 Learned

  • 인터프리터 방식
  • 명령어들을 한 번에 한 줄씩 읽어들여서 실행하는 방식
  • 컴파일 단계를 거칠 필요가 없다 실행 시간이 느리다 (기계 성능이 좋아져 더이상 단점이 아니게 되었다)
  • Python, Basic, Javascript…
  • 약타입 (타입이 지정되지 않아 자꾸 바뀜), 동적 타입
  • 컴파일 방식
  • 명령어를 기계어로 번역하는 방식 일반적인 경우 속도가 더 빠르다
  • 원시 프로그램의 크기가 크다면 상당한 시간이 소요된다
  • C, PASCAL, Swift…
  • 강타입, 정적타입

5. Web Browser 의 등장

1993년 개인용 컴퓨터에서 사용할 수 있는 Mosaic Web Browser 가 출시

1994년 마크 안드레센이 Netscape Navigator 출시, 80% 점유

1995년 브랜든 아이크가 Live Script 개발, Javascript로 개명

1995년 Netsacape Navigator를 참조해 IE를 출시 (리버스 엔지니어링, 역공학 을 이용해 베껴서 만듬), JScript 내장

1997 ECMAScript 로 표준화 ES1 (Javascript의 정식 명칭)

2015 ES6

 

6. 개발 환경

Node.js LTS(Long Term Support) v20.17.0

Azure, PostgreSQL, MongoDB, Git, Github, REST API, Microsoft Cognitive Services, Docker

HTML, JS, CSS React.js, Next.js

7. Node.js

Javascript Runtime 환경

Ryan Dahl이 2009년에 출시

Chrome의 Javascript 엔진인 V8 엔진 사용

다른 Javascript Runtime 환경으로 디노, 번 등이 있음

8. Visual Studio Code

마이크로소프트가 개발한 소스 코드 편집기

윈도우, Mac OS, 리눅스 등 다양한 플랫폼에서 사용 가능

다양한 프로그래밍 언어를 지원하며 각 언어와 함께 사용할 수 있는 편리한 기능들을 제공

플러그인을 통해 새로운 확장 기능 추가 가능

 

9.  숫자형

let integer = 123; //정수 
let negative = -123; // 음수
let double = 1.23; // 실수
let binary = 0b10101010; // 2진수 (binary라서 b로 시작)
let octal = 0o157; // 8진수
let hex = 0x7a3f; // 16진수
let inf = 1/0 //Infinity
let minf = -1/0 //-Infinity
let nan = 1/'hello' //Nan(Not a Number)

 

10. 템플릿 리터럴

const name = "이다영"
const message = `안녕하세요 ${name} 님`

 

11. 용어

* 아스테리크

| 파이프

 

12. switch case 문

switch(browser){
    case "Safari" :
        console.log("지원되는 브라우저입니다.");
        break;
    case "Chrome" :
        console.log("지원되는 브라우저입니다.");
        break;
    case "Safari" :
        console.log("지원되는 브라우저입니다.");
        break;
    case "IE" :
        console.log("지원되지 않는 브라우저입니다.");
        break;
    default : 
        console.log("알 수 없는 브라우저입니다.")
        
}

 

13. do ~ while 문

do {
    console.log("지속")
    } while (num < 10)

14. while 문

while(age < 8){
    console.log("미취학 아동입니다.")
}


15. Quiz 학점 구하기

주어진 score에 따라서 학점(A,B~F)을 출력하는 조건문(if~else if) 를 이용해서 작성하기

function scoreCalculator(score) {
  console.log("주어진 점수에 따른 학점을 출력합니다.");
  if (score > 90) {
    console.log("A");
  } else if (score > 80) {
    console.log("B");
  } else if (score > 70) {
    console.log("C");
  } else if (score > 60) {
    console.log("D");
  } else if (score > 50) {
    console.log("E");
  } else {
    console.log("F");
  }
}

 

16. Quiz 구구단 출력

구구단을 이중 for루프를 이용해서 출력하시오.

function multiplier() {
  console.log("지금부터 구구단을 출력합니다.");
  for (i = 1; i <= 9; i = i + 1) {
    console.log(`======= ${i}단 =======`);
    for (j = 1; j <= 9; j = j + 1) {
      console.log(`${i} X ${j} = ${i * j}`);
    }
  }
}
multiplier();

 

17. 최종 프로젝트 기술 계획

주어진 기간 : 21일

 

2일 : 기획

1일 : 카카오 구글 소셜 로그인

2일 : CRUD + TDD

1일 : Azure Blob Storage 이미지 저장

2일 : Socket.io 채팅 

2일 : 생성형 AI -  BullMQ 대기열

1일 : Logging : ES + Kibana (Log Level WARN = 이메일 알림)

4일 : 프론트엔드

3일 : CSS

1일 : CI/CD 파이프라인 구축 (Github Actions + Azure)

2일 : 여유 

 

 

 

 

 

 


정리  Memo

num++ 필요한 작업  해당 변수의 값을 증가 (후치)

++num 해당 변수의 값을 증가후 필요한 작업수행(전치)

 

* 현대식 코딩에서는 잦은 버그로 인해 증감연산자의 사용을 지양한다.

 

 

KPT

Keep

열심히 하는 것

Problem

쉽다고 안일하게 생각하는 것

Try

기초를 확실하게 다시 다지기

소감  Diary

클라우드 기반 생성형 AI활용 웹개발자 과정을 새로 시작하며 자바스크립트 기초를 다시 닦았다.

빈틈없이 잘 준비해서 다시 개발자 취업에 성공하고 싶다. 

 

 

 

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20240915  (4) 2024.09.15
TIL 20240724  (0) 2024.07.24
TIL 20230719  (0) 2024.07.20
TIL 20240619  (0) 2024.06.19
TIL 20240610  (2) 2024.06.10