ASAC-SK플래닛 T아카데미 데이터 엔지니어

25.10.27 13~14일차 [ 웹 프로그래밍, javascript, 개발환경, js_변수,주석,문자열,연산자,형변환,흐름제어,함수|html_개요,로그인처리,id,pw특정]

Datadesigner 2025. 10. 27. 17:58

27일 오후에는 javascript를 위한 프로그램 다운로드등이 주된 내용이라서 수업보다는 설치와 설명등이 주된 내용이었다.

 

javascrpit같은 경우에는 이미 python과 sql을 공부했기 때문에 조금 더 쉽게 적응할 수 있을거라고 하셨다.

 

13일차

수업 내용
  • 웹 프로그래밍
    • 프런트엔드
    • 백엔드
    • 데이터베이스
  • javascript
  • 개발환경

 


  • 웹 프로그래밍
    • s/w or 프로그램 or 언어구성
      • 프론트엔드
        • 웹 브라우저에 보이는 화면 담당
        • 구성 
          • html
            • 뼈대 , 콘텐츠
          • css
            • 디자인, 레이아웃, 애니메이션
          • javascript
            • 문법 난이도
              • 초 / 중 : js
              • 중 / 고 : ts
            • 사용자와 브라우저(프런트가 보이는 s/w) 에 표현된 프론트엔드 화면간 인터렉션 ( 상호작용 )
              • 이벤트 , 통신 , 동적 화면구성, . . . 
            • js를 통해서 대시보드 인터렉티브하게 구성이 목표
      • 백엔드
        • 프론트엔드 화면 구성에 필요한 서비스, 비즈니스 로직, 디비쿼리 등 업무 수행, 프론트 화면에 결과를 전송
        • 프론트엔드 파트에서 만들어지는 화면을 동적 구성하여 제공, 데이터를 제공하는 역할
        • 언어 / 프레임워크
          • java : springboot (oracle 베이스)
            • servlet / jsp -> ejb -> spring -> spring boot 순서대로 진화
          • c# : .net(MS)
            • asp -> .net 순서대로 진화
          • php : php ( apahe + php + mysql : 리눅스) -> 어둠의 세계에서 많이 쓰는 프로그램
          • javascript / typescript : nodejs ( 구글 2000년대 전후 검색엔진 -> 2005년 구글지도(ajax개발) -> 2008년도 크롬 브라우저(v8엔진 기반) -> 2009년 전후 nodejs 탄생 ( 구글x v8엔진 기반)
            • 프론트엔드부터 백엔드까지 단일언어 (js를 사용) 개발 가능해짐
          • python : flask, django, fastapi
            • 빅데이터 분석, 데이터 처리, ai등에 주력 언어는 파이썬임 -> ai시대에 웹서비스까지 단일 언어로 구성 가능 조합 (node -> flask, django -> fastapi) 흐름이 등장, fastapi는 LLM과 성능적 퍼포먼스로 각광을 받고있음
          • . . .
  • 데이터베이스
    • mysql
javascript
  • 특징
    • 세계 top 10 ( 선호도 높은 ) 언어 포함됨
      • python 도 포함됨
    • SPA ( Single Page Application) 개발 시 주력 언어
      • 1개의 페이지에서 클릭 등 이벤트를 통해 다른 화면이 나올 때 기존 내용을 지우고 새로 렌더링 -> 화면 껌뻑임 ( 주소창 옆에 x 표기가 없음)
      • Angular - 구글
      • react - 메타 (1위)
      • vue - 커뮤니티 (2위)
      • ....
  • 역사
    • 2005년 구글 지도 이후 js, ajax는 프론트엔드의 핵심 기술로 정립
    • 2009~10 nodejs 등장으로 js는 백엔드 분야로 확장
    • 현재
      • 프론트엔드, 백엔드
      • 웹, 앱, 데스크톱 app 모두 개발 가능
  • 버전

 

 

      • HTML, CSS, JS등 표준 안내, 학습 제공 
    • 2009: ES5, ECMA Script5 표준의 기본
      • 모든 브라우저에 공통으로 적용
    • 2015 : ES6, ECAM Script 2015, ECAM2015
      • 현재 표준의 기본 형태, ES Next
      • 현재 사용하는 대부분의 추가 문법들이 이때 적립됨
      • 이후 : 매년 갱신 ( 문법)
  • 구동 형식 특징
    • 최신 문법 적용 -> babel -> ES Next or ES5로 변환하여 구동
    • babel : 최신 코드를 호환 코드로 전환
    • LLM이 만드는 코드 -> ES Next (ES6) or ES5
      • 현재 표준은 ES6(ES Next)
  • typescript
    • ES5 공부 -> ES6 공부 -> TS 공부
    • TS 구동
      • TS -> ES6(ES Next) 변환 구동 ->ES5 변환 구동
    • javascript + type + 약간의 문법
개발 환경

 

  • docker - nodejs - vscode

docker에 nodejs를 설치하고 그걸 vscode를 통해서 사용하는 방식이다. 자세히는 더 공부해야될듯

 

1. 터미널에서 docker run --name node -p 3000:3000 -itd -v ( 파일저장하고싶은본인폴더경로 ):/home/js node

를 입력한다.

 

 

각 명령어가 가진 뜻은 이렇게 되어있다.

 

cmd 명령이 끝나면 도커 컨테이너에 node 컨테이너가 설치된것을 볼 수 있다.

이제 vscode의 extension에서 dev containers를 설치해준다

 

위 검색창에서 F1을 누르고 Dev Containers: attach to.....을 누르고  node를 누르면 새 창이 열리고 node container로 진입한다.

여기서 파일을 만들면 처음에 설정한 파일이 저장되길 원하는 경로에 있는 폴더에 자동으로 파일이 저장된다.


14일차

javascript

 

  • 목차
    • 변수, 주석
    • 문자열
    • 연산자
    • 형변환
    • 흐름제어
    • 함수

변수, 주석

1. 주석
JS의 한 줄 주석//  <-> # 파이썬의 한 줄 주석
/*
JS의 여러줄 주석 
*/
'''
파이썬의 여러줄 주석
'''
/**
* JS의 스페셜 주석, 슬래쉬 별표 별표 치고 엔터누르면 알아서 늘어남 
*
*/
console.log( 출력 내용 ) <- JS의 출력 명령어 
print() <- 파이썬의 출력 명령어


vscode의 경우 실행하려면 밑의 터미널 창에서 node (파일명.확장자) 를 입력하고 엔터를 눌러야 된다.

그럼 요렇게 나온다

확장 프로그램 설치하면 단축키로도 가능하다고 한다.

 

2. 변수

* 변수  
* - 문법
*  - 변수 선언
*  - 변수 선언 및 초기화 
*      - 키워드 변수명 
*  - 변수 선언 및 초기화 
*      - 키워드 변수명 = 값 
* - 용도 
*  - 값을 담는 그릇(초보적 해석) 
*  - 값을 가르키는 `참조`값을 가진 그릇(값을 가르킨다) 
*  
* - 키워드 (파이썬에는 없는 내용이다) 
*  - var  
*      - 초기때부터 사용하였음 
*      - 변수 선언, 범위에 대한 버그가 존재함 -> 변수명이 안 겹치면 일단 해결됨
*  - 추가됨 (2015, ES6에서)
*      - 변수의 범위를 블록 스코프 { 여기서만 유효 } 로 구성    
*      - let   : 변수 키워드, 범위에 대한 버그를 해결함.    
*      - const : 상수 키워드 (파이썬에는 없음)  
*          -> 압도적으로 많이 씀, 상수명은 대문자 구성(관습)
*          -> 함수/객체를 참조할 때 사용, 환경변수, 설정값 *
*/ 수업 내용 복사 ㅎ

***기억해야 할 포인트***
변수 선언 : var, let, const 
파이썬과 같이 상수는 대문자로 표기한다, JS에서는 끝에 세미콜론을 붙인다.
파이썬과 같이 전역변수는 global하게 적용되고, 지역변수는 조금 다르게 { } 중괄호로 표기된 함수 내에서만 정의된다.
첫번째에는 1 , number로 출력 -> 파이썬은 int인데 이 점이 다르다.
두번째에는 hello string으로 출력
a = 10, b = 11
a는 전역변수로 1로 지정되었지만 
if문 안에서 var a = 10으로 다시 지정하였으니 a는 10으로 출력된다.
var b = 11은 맥락상 지역변수지만, var의 경우 지역, 전역 변수를 완전히 명확하게 선언하지 않아 코드블럭 밖에서도 출력되는 모습이다.
let c = 12는 let으로 지역변수로 `명확히` 선언하였기 때문에 코드블럭 밖에서 출력하면 오류가 난다.
변수 호이스팅은 조금 복잡하다.
변수 선언을 하지 않았담녀 자동으로 var a2;라는 코드를 54번 console 코드 위에 삽입한다.
그래서 54번은 undefined가 출력되고
이후 55번에서 선언을 한 후 56번이 출력되어 100이 출력된다. 이런 것이 버그 아닌 버그라고 할 수 있다.
해결하려면 변수를 선언 한 후 사용하는 아주 당연한 룰 을 적용하거나 let, const를 사용하면 된다.
var의 버그를 수정하기 위해 나온게 let, const이다.

 

3. 문자열
파이썬과 꽤나 동일하다. 하지만 다른 점은
포맷팅
파이썬
f' { } , { } , { } '
JS
`${ 값 } , ${ 값 } , ${ 값 }` 으로 달러기호를 붙여야 한다.
문자열 출력 확인
리터럴을 겹쳐도 파이썬과 같이 맨 바깥 리터럴이 작용하고 그 내부는 문자열로 출력되는것을 확인할 수 있다.
여러 줄을 구성하려면 백틱 `(키보드상 물결표시) 로 감싸준다면 모두 출력되어 나온다.

 

4. 연산자
대부분 다른 언어와 동일함
포인트
포맷팅의 차이 f' `${}
++
===
JS의 `$ { } 포맷팅을 이용해서 구문에 대입한 내용이다. 포맷팅 형식 말고는 거의 동일하다.
문자열 더하기, 파이썬의 경우 오류가 날 것이다.
하지만 JS에서는 관대하게도 다 받아준다
대신, 문자열과 수치형이 함께 있다면 모두 문자열취급으로 변한다.
예시로 17번 출력물을 본다면
빈 칸과 수치형 10이 더해졌지만
10 STRING으로 문자열로 타입이 출력되는것을 볼 수 있다.
이건 좀 신기한데 ++ , -- 등 파이썬에는 없는 연산자가 있다.
++ => 1 더하기, -- => 1 빼기이다, 단, 위치로 인해 결과가 달라진다.
EX
i++ = i를 먼저 출력한 후 값을 증가시킴
++i = 값을 증가시킨 후 i를 출력함.
그래서 25번 행의 결과값의 경우
i =1, i = 1을 출력한 후 1을 더함(이 때 i = 2), (i = 2)에 1을 더한 후 (i = 3) 출력, i = 3
이 순서로 보면 된다.
이 경우에는 i에 2를 더한 후, i = i +2로 또 2를 더해서 최종 값 7이 출력되는 것이다.
JS만의 다른 연산자인 ===가 있다.
X1은 NUMBER , X2는 STRING이다, 그런데 두 값을 == 하면 true가 출력된다,
이는 통상 객체간만 비교해서 그런 것이다. 그런데 ===을 사용하면 같은 타입도 거르기 때문에 false가 출력된다.

삼항연산자 문법 : (조건식) ? (참일때 값) : (거짓일때 값) ;
커피값을 1800d으로 변수를 준 이후
삼항연산자를 이용해서 조건식 커피값이 2000보다 크면 비쌈 출력, 작으면 적당 출력을 대입한 내용이다.

 

5. 형변환
종류
명시적
해당 변수를 대놓고 특정 타입으로 바꾸는 방식
정보 손실이 발생될 수 있음
암묵적
통상 수치형 => 수치형 => 메모리공간 절약 효과
1. 명시적
10 number => a는 10이고, 수치형이다
1-1. 문자열로 변환
a는 문자열이다,
false는 문자열이다
1-2. 결과물이 수치형
문자열 ' 1 ' 을 넣었지만, number로 인해서 ' 1 ' 은 수치형이 되었다. -> 이 떄, 공백제거가 된다.
이 때, ' ab ' 는 숫자가 될 수 없기 떄문에 NaN가 출력된다 ( 정보손실발생 )
1-3. 불린형 반환
파이썬과 다르게 true, false 다 소문자다. 
1, -1 = true
NaN , null , undefined = false
2. 암묵적 형 변환
27번 코드는 수치 + 수치 = 더ㅎ가기가 작동했다.
30, 31, 32번은 단 하나라도 문자열이 있으니 모두 문자열로 출력되는 모습이다,

 

6. 조건문
포인트
elif가 없고 문법이 조금 다르다, 소괄호와 중괄호(코드블럭) 존재
조건이 1개 if ( 조건식 ) { 수행문 } 
조건이 2개 if ( 조건식 ) { 수행문 } else { 수행문 } 
조건이 n개
if ( 조건식 ) { 수행문 } else { 수행문 }
if ( 조건식 ) { 수행문 } else { 수행문 }
if ( 조건식 ) { 수행문 } else { 수행문 }
if ( 조건식 ) { 수행문 } else { 수행문 }
...
논리 연산자도 차이가있다.
A && B = A and B 
A | | B  = A or B
!A = A가 아니다, not A
1. 조건이 1개일때
문법이 조금 다른것을 볼 수 있다.
let을 통해서 변수를 선언하고
if (소괄호 안에 조건식을 넣는다 ) { 코드블럭-> 파이썬의 : 역할이다
                 console.log(' 구매 실패') <- 파이썬의 print()역할
}
2. 조건이 2개일때
조건이 2개일때이다.
첫번째 조건은 else전에서 끝나고 만약 else라면 모두 적절을 출력하는거다.
else는 나머지 모든 조건이니 조건식을 생략해도 ok
등급 매기는 조건문이다.
학생 점수는 70점이고 90점부터 순서대로 A, B, C, D, F의 등급을 받는다.
문법을 보면 if 조건문 코드블럭 수행문 else if 조건문 코드블럭 수행문 else , . . . .
반복되는 모습을 볼 수 있다.
위에서부터 내려오며 학생의 점수인 70점에서 멈추는것을 볼 수 있다.

삼항연산자로 조건문을 만든 내용
조건문 ? 참일때 값 : 거짓일떄 값 ; 로 만든 삼항연산자.
멤버 레벨이 10이고, 레벨이름은 멤버 레벨이 10이상일때 vip, else라면 normal이 출력된다.
레벨이 10이기때문에 vip가 출력된 모습.
실습 이미지
위에처럼 풀어서 기입해도 되지만 수행문이 1개라면 else에 다 잡히니까 { } 중괄호를 생략해도 무방하다.
여러 조건이 있는 경우 또 하나의 방법으로 switch ~ case를 사용해도 좋다. 
switch ~ case의 경우는 범위 조건식이 아닌, 한 가지 명확한 케이스가 있을때 사용 가능한 조건식이다.
하나하나 살펴보길,

 

7. 반복문

파이썬과 다른 점은 do ~ while문이 한개 존재한다.
while 문과의 차이는 
while문은 시작 조건이 false면 바로 끝난다. 하지만
do ~ while문은 일단 한번은 조건식을 돌고, 이후 끝난다.
챗gpt가 알려준 두 구문의 차이

우리가 아는 기본 for 반복문이다. 다른점은
구문에 포맷팅이 f포맷팅이 아닌 점
1번 구문에 변수 증감 기호가 ++ 인 점 ( 파이썬은 +=)
for 문에도 소괄호로 싸여있는점 등등이 있겠다

익숙한 변수다, 중괄호는 파이썬에서 딕셔너리였다.
for 문에서 딕셔너리의 키와 값을 추출하는 방법은 인덱싱이었다.
person 변수를 지정한 후
for 문으로 키를 출력하는데 이 때 추가 조건으로 if key === 'name'이라면 continue, 점프해라 라는 뜻이다
그래서 key, person[키 인덱스 = 값] 이 출력되므로
출력값은 age 10
문법만 조금 다르지 사용하는 방식은 비슷하다.
js는 값이 모두 나오다 보니 편의를 위해서 구분선을 넣었다.
파이썬에서 리스트였던 [ ] 는 JS에서 배열이라고 한다.
FOR 문으로 levels에 있는 데이터들을 하나씩 꺼내서 출력하는게 1번
levels에 있는 데이터들의 인덱스도 함께 추출하는것이 2번이다.
그런데 지저분해서 잘 사용은 안한다고 한다. 인덱스는 파이썬과 같은 형식으로 작동한다.

while문으로 cnt가 > 3 이 될때까지 계속해서 돌리는 내용이다.
마찬가지로 문법이 파이썬과 조금은 다르지만 크게 다르지는 않은 모습을 볼 수 있다.
cnt ++ 로 1씩 증감되는 모습, cnt가 4가 되니 출력되지 않고 break를 통해 나가는 모습을 볼 수 있다.
애초에 while(조건문) 형식으로 바꿔서 더욱 간결하게 변환시킬수도 있다. 위와 아래의 결과값은 같다.
do ~ while 은 반드시 한번은 수행된다. 위 코드에서는 크게 while문과 다른 점을 느낄 수 없지만.

이렇게 보면 while 문과는 다르게 시작부터 false라도 한번은 출력되는것을 볼 수 있다.

 

8. 함수
함수는 내일 마저
html
  • 개요
  • <!DOCTYPE html> 
  • 이 문서는 html의 문법을 따르는 문서임을 선언한 것임 -> 브라우저가 인지
  • 웹 화면 인지하는 절차
    • 브라우저 가동
    • 주소창에 URL입력 후 엔터
    • 요청이 인터넷 타고 서버에 전달
    • 서버는 IP로 관리됨, 사람이 인지 못해서 도메인과 매핑
    • 사람은 도메인을 입력하여 요청
    • IP대역 (0~255.0~255.0~255.0~255)별로 국가 대륙별 할당
    • 서버에 요청 도착하면
      • 요구사항 분석
      • 필요시 디비 조회
      • 응답 준비 (HTML,CSS,JS) : SSR
      • 서버 응답, 인터넷을 타고 클라이언트 브라우저로 전송(HTML,CSS,JS)
    • 브라우저 응답결과 파싱
  • 엘리먼트(ELEMENT)
    • 구성
      • 시작 태그 (start tag)
      • 콘텐츠(or 데이터)
      • 종료 태그 (end tag)
    • 태그
      • 시작 태그 : <요소명|태그명>
      • 종료 태그 : </요소명|태그명>
      • 단독 태그 : <요소명|태그명/> => <input . . ./>, <br/>, . . .
  • html 주석
    • <! -- -- > => 이 안에 담으면 주석이 됨
    • <!-- 헤드, 바디로 구성됨 -->

한방에 요약

위 파일을 인터넷 탭에 열면 

이렇게 나온다. 오른쪽 창은 개발자 모드로 ctrl + shift + j 를 누르면 나온다, 저기에 js에서 입력한 내용들이 출력되게 되어있다.


2번 파일

2번 파일에서는

로그인을 위해서 id, pw 입력하는 칸과 로그인 버튼을 만드는 법,

js를 이용해서 로그인이 처리되도록 만드는 법 두가지를 실습했다.

먼저 기본 틀을 만든 이후 하나하나 추가한다.

  • 로그인 처리 방법

  • <p>로그인</p>
    • 로그인 말뭉치이다
  • <input type='text' id='uid'>
  • <input type='password' id='upw'>
    • 아이디와 비밀번호를 입력할 수 있는 창을 만들어주는 역할을 한다.
  • <button onclick='login();'>로그인</button>
    • 로그인 버튼을 만들어준다

파일을 인터넷 탭에 열면 이렇게 나온다.

 

이제 저 칸들에 무언가를 입력했을때 반응해야 하겠지!

  • id, pw 특정 방법

 

  • function login()
  • 파이썬의 def / js의 var,let,const 처럼 html에서 함수를 정의하는 키워드다.

그 이후로는 js의 문법대로 진행된다

uid, upw에 각각 입력한게 출력되도록 함수를 처리한 것이다. 이제 웹사이트에서 진행해보면

첫번째까지만 했을때에는 로그인창을 눌러도 아무것도 작동하지 않았다. 근데 login 함수를 입력한 후에는?

오른쪽 개발자모드에 vscode에서 입력한 결과물이 나오는 것을 확인할 수 있다!

 

 


오늘은 내용이 많이 겹쳐서 13~14일차로 끊었다.

 

아마 함수부분이랑 html이 계속 지속되면 앞으로도 이런 식으로 올라가게 될 수도 있겠다.

 

파이썬을 한번 배우고 나니 확실히 왜 한 언어를 알면 다른 언어를 배우기 조금 더 쉽다는지 이해가 갔었다.

 

수업을 하다보면 비슷한 내용에 비슷한 기능인데 언어마다 약간의 문법이 다른정도? 그 정도만 알고 지나가도 충분히 만질 수 있다고 해 주셨다.

 

왜냐하면 js랑 html은 앞으로 우리가 배울 과정에서 크게 중요하지 않고 우리가 수업하고 프로젝트를 진행할 때 그저 결과물을 시각화해서 표현만 할 수 있는 정도로만 다루고 넘어갈 것이라고 하셨기 때문이다.

 

그 대신 그래서 진짜 진도가 겁나게 빠르게 지나간다, 집에서 복습하려는데 docker에서 node 다운받는것도 기억 안나서 한시간 헤멘거같다. 그래도 성공했다! 하하하 엄청나게 뿌듯하더라 이제 집에서 파이썬,sql,nodejs 모두 다 할 수 있다.

 

그래도 js 에만 있는 문법, 표현 등등이 있어서 아직은 조금 어려운 부분이 있다. 사실 파이썬도 마스터한 것은 아니니까..

 

언어는 그저 대화하고 표현하기 위한 도구일 뿐 언어 자체의 문법, 논리 등은 기본으로 알고 만질 수 있어야 하는데

 

아직은 그래도 어려운 것 같다. 

 


개인적으로는 백엔드보다는 프런트엔드에 조금 더 마음이 가는것같다.

 

데이터 엔지니어 과정은 거의 백엔드 위주의 수업과정만 있는데 어떡하지

 

괜히 html, js등의 수업을 들으니까 뭔가 다른 길로도 나아갈 수 있을 거 같고 그런 근거없는 자신감이 든다.

 

내가 데이터 시각화를 단순하게 안하고 겁나게 이쁘게 하면 되는거 아닌가? 이렇게 하다가 웹디자이너 쪽으로 갈 수도 있지 않을까?

데이터 다루는 법을 학원에서 배우고 시각화까지 나쁘지 않게 하면 이걸로 취업이 아니라 1인 창업쪽으로도 갈 수 있는거 아냐?

이런 생각만 든다 근데 못할건 또 뭐냐 

사람은 하고자 마음만 먹으면 못 할건 없다, 근데 그럼 웹디자인 학원을 가지 ㅋㅋ 왜 백엔드수업듣고 이러고 있냐

 

아직은 수업을 더 들어봐야 알겠지... 그래도 사람들은 모두 개인사업의 꿈을 마음 한 구석에 몰래 쌓아두고 살고있지 않은가,

 

이번 주말에 학교 선배 결혼식을 갔었는데 각기 나이도 다르고 하는 분야도 다른 형들이 시간이 지나고 각자의 분야에서 사업을 하면서 오히려 성인이 되고 함께 일하면서 더 자주 만난다는 이야기를 들었다. 

한명은 f&b 창업 한명은 간판, 사인, 판촉물 등 한명은 인테리어

이렇게 각기 다른분야임에도 겹치는 부분이 있어서 거의 한달에 4~5번은 일적으로 자주 본다는 이야기를 들었는데

만약 회사에 다니고 있었다면 저렇게 할 수 있었을까.. 그냥 흔히 드라마나 주변에서 보이는 주말에 술이나 한잔하면서

다들 힘들지~ 아우 힘들다 죽겠다~ 우리회사는 왜이러냐 ~ 이런얘기만 하다가 집 가는게 보통 우리네 이야기 아닌가.

 

근데 각자 분야에 취업이 아닌 창업을 한 사람들이 만나다보니 확실히 그 대화의 흐름과 열정이 다른게 느껴져서 내심 아주 부러웠다.

내가 살고싶은 삶도 저렇게 내 일과 삶이 분리되지 않고 함께 일하고 앓는 소리 안하고 내 행동에 책임을 지며 살고 싶었는데

 

나도 지금 이 컴퓨터기술이 나와 아무리 맞지 않고 어렵다고 해도 그만두지 않을것이다, 진짜 어렵긴 하지만

 

만약 이게 안 맞아서 다른 일을 택해도 괜찮다, 사람마다 안 맞는 일이 있으니까,

 

하지만 지금 나의 상태로는 다른 일을 택하는것은 그 일이 정말 하고싶어서가 아닌, 도피의 성격이 훨씬 강할 것 같다.

분명 이 수업을 듣고나서 내가 뻗어나갈 수 있고 내가 생각하지 못했던 수많은 일들을 나는 더 할 수 있게 될 것이고 그것은 내 삶을 바꾸어 둘 것이다. 

 

사람 일은 어떻게 될 지 모르니까, 작년에 이맘때에는 회사 그만둔다고 말하고 정말 우울 그 자체였는데 내가 컴퓨터기술을 배우고 있을지 누가 알겠는가

 

앞으로의 삶을 위해서 오늘 하루도 화이팅