Q. 실행 컨텍스트 란(execute context)?

JS에서 실행 컨텍스트는 엄청 중요하다는데 비전공자로 막 깨지면서 코딩을 해와서 사실 잘 느낌은 안온다.

뭐 중요하다니까 알아보자.

 

1. Execute Context 란?

=> 자바스크립트 코드가 실행되고 연산되는 범위를 나타내는 추상적인 개념

 우리가 코드를 작성하고 실행한다면 실행 컨텍스트 내부에서 실행되고 있는 것. 즉, 코드들이 실행되기 위한 환경이자 하나의 박스 컨테이너라 볼 수 있음!

 

2. 자바스크립트 코드 실행에 필요한 정보

 1) 변수 (전역 변수, 지역 변수, 매개 변수, 객체의 프로퍼티)

 2) 함수 선언

 3) 변수의 유효범위

 4) this

 

3. 실행 컨텍스트 종류

 1) Global Execute Context

 =>  기본 실행 컨텍스트로 global object를 생성하며 this를 global object로 설정함. JS 에서 global object는 우리가 많이 사용하는 window 객체이다. (전역 컨텍스트는 Call Stack에 가장 먼저 추가되며 앱이 종료 될 때 삭제됨)

여기엔 엄~청 복잡하고 많은 함수들이 많아서 여기다 변수를 선언하는 변수를 쓰지않고 선언 & var를 통한 선언은 안 하는게좋음.

 2) Functional Execute Context

함수가 실행 될 때 마다 정의되는 context이다. 실행시마다 정의되며 함수 실행이 종료(return) 되면 call stack 에서 제거됨. 

 

 3) Eval Functional Execute Context

 보안상의 문제로 eval은 잘 사용되지 않아서 이름만 알고 넘어가자.

 

4. Execution Stack 

 => 다른 프로그래밍 언어의 호출 스택(call stack)이랑 동일. 스택은 LIFO(Last in, First out) 구조 형태.

JS 엔진은 script 요소를 처음 만날 때 [global execution context]를 생성하고 [execution stack]에 push 한다.

그리고 엔진이 함수 호출을 찾을 때 마다 해당 함수에 대한 새로운 실행 컨텍스트를 생성해 [execution stack]의 맨 위로 push 한다.

JS 엔진은 실행 컨텍스트가 스택 맨 위에 있는 함수를 실행한 뒤 함수가 종료되면 스택에서 제거하고 호출 스택은 최신화 된 스택에서 맨 위의 컨텍스트를 이전과 동일한 로직으로 접근함.

 

5. Execution context 생성 로직

 위의 과정은 자바스크립트 엔진에서 어떻게 실행 컨텍스트를 관리하고 동작하는지였다.

 이번에는 자바스크립트 엔진이 실행 컨텍스트를 만드는 과정임!

 2 단계로 Creation Phase, Execution Phase 과정을 거친다-  는 다음 시간에...

 

똑딱 코드 쳐서 실행시키기만 했지 1도 몰랐었네 안에서 갱장한 과정을 거치고 있었구낭ㅎㅎ

 

 

간만에 독서좀 하려고(개발 관련 외의 글자를 읽고 싶어서) 동생 방에서 몇권 훔쳐왔다. 그 중에 만만한 얇은 책을 며칠 읽었는데 제목은 '나는 내가 싫고 좋고 이상하고' 산문이고, 대충 중간쯤부터 읽었는데 내용이 산만하고 여러 주제를 산발적으로 쏘아대서 오히려 잘 읽혔다(?) 뇌를 비우고 읽다가 그래도 내용이 그렇게 흥미롭진 않은뎅 하면서 1페이지부터 잠깐 읽어봤는데 같은 작가가 맞나 싶을정도로 주제도 통일화되고 내용에 깊이가 있었다. 여성 차별에 대한 내용이었는데 한창 문단 내 성범죄가 SNS을 통해 드러날 무렵 저자도 함께 용기를 내어 글을 적었고 사실이었을 일들이 적나라했고 충격적이었고 그동안 내가 너무 모르고 살았구나 느끼고 반성했다. 읽으면서 계속 든 생각인데 작가가 이렇게해도 되나 싶을 정도로 솔직하다. 본인의 어렸을 때 가정폭력 당한 이야기, 강간을 당할 뻔 한 이야기, 성폭행 당한, 가스라이팅 당한, 이혼에 관한, 우울증에 관한, 스무살이 되기까지 사람을 잔인하게 죽이는 글을 쓰며 즐거워한 내용이 서술된다. 연민을 바라지 않는 볼테면 봐라는 문체는 더욱 와 닿았고 여성으로 살아간다는게 너무너무너무 힘들구나 생각됐다. 조금더 귀 기울이고 미약하게나마 내 주변 지인들에게라도 더 잘해야겠다는 생각도.

Q. 가상돔(Virtual DOM)이란?

가상 DOM은 실제 DOM에서 처리하는 방식이 아닌 Virtual DOM과 메모리에서 미리 처리하고 저장한 후 실제 DOM과 동기화하는 프로그래밍 개념이다. 해당 DOM을 컴포넌트 단위로 쪼개어 HTML 컴포넌트 조립품 처럼 다루는 개념이다.

 

가상돔을 사용하면 실제돔에 접근하여 조작하는 대신, 이를 추상화한 자바스크립트 객체를 구성하여 사용한다.

(실제 DOM의 사본)

DOM의 상태를 메모리에 저장하고, 변경 전과 변경 후의 상태를 비교한 뒤 최소한의 내용만 반영 -> 성능 향상

가상 DOM은 DOM의 상태를 메모리 위에 계속 올려두고, DOM에 변경이 있을 경우 해당 변경을 반영함.

 

리액트가 가상DOM을 반영하는 절차

 1) 데이터가 업데이트 되면, 전체 UI를 가상DOM에 리렌더링함.

 2) 이전 가상DOM에 있던 내용과 현재의 내용을 비교함 (가상DOM끼리 비교)

 3) 바뀐 부분만 실제 DOM에 적용이 됨 (컴포넌트가 업데이트 될 떄, 레이아웃 계산이 한번만 이루어짐)

결론

DOM 사용시 작은 규모의 레이아웃이 여러번 발생 -> 가상 DOM 사용으로 큰 규모의 레이아웃이 한 번 발생

리액트는 위와 같은 얕은 비교와 일괄 돔 업데이트 방식을 이용해 성능향상을 꽤한 것 

하지만 개발자의 코드 수준에 따라 가상DOM이 더 낮은 성능을 발휘 할 수도 있다~

 

 

DOM 도 좀 보고가자

DOM에 대해서 알아보자. DOM(Document Object Model)은 웹 페이지를 이루는 태그들을 자바스크립트가 이용할 수 있게 브라우저가 트리구조로 만든 문서 객체 모델을 의미함.

여기서 문서 객체란 html, head(title, meta 등), body(h1, p, ul 등)과 같은 태그처럼 JS가 이용할 수 있는 객체를 의미함.

그니까 DOM은 브라우저가 HTML 과 스크립팅 언어인 JS를 서로 이어주기 위해 사용한다고 보면된다.

JS는 Document 라는 전역 객체를 통해 html 에 접근해 태그들을 조종한다.

(ex. document.getElementById() document.getElementByClass() 등)

 

=>가상 DOM이 나온 이유

실제 예시를 통해 DOM의 문제점을 보자,

document.getElementById('title').innerValue = 'updated value' ;

이 코드가 실행되면 크게 5가지 과정이 일어난다.

 

 1) 브라우저는 HTML을 구문 분석해 title ID를 가진 노드를 찾는다

 2) 이 요소의 자식 요소를 제거한다

 3) 'updated value' 로 요소(DOM)를 업데이트 한다.

 4) 부모 및 자식 노드에 대한 CSS를 다시 계산한다.

 5) 마지막으로 브라우저 디스플레이에 페인팅된다.

 

실제 변경 데이터 뿐 아니라 더 많은 작업이 일어나고 CSS를 다시 계산하고 레이아웃을 변경할때 복잡한 알고리즘이 필요하고 이는 성능에 영향을 미치게된다.

 

이처럼 화면의 변경사항을 DOM을 직접 조작해 브라우저에 반영하면 DOM 트리가 수정될 때마다 렌더 트리가 계속 실시간으로 갱신된다. 화면에 10개의 수정사항이 발생하면 수정할 때 마다 새로운 랜더 트리가 10번 수정되면서 새롭게 만들어지는 비효율이 일어남.

 


Q. React의 함수형 컴포넌트란?

React의 컴포넌트는 크게 class형 과 함수형으로 나뉘는데 간단하게 정의하면,

 

함수형 컴포넌트

 - function 으로 정의하고 return 문에 jsx 코드를 반환

function 함수형컴포넌트(props){
	return(
    	<div>
          `함수형 컴포넌트 와꾸
           당연히 화살표로 해도됨 
           => const 함수형컴포넌트 = (props) => {
				return(
                	<div>이거랑 동일</div>
               )}` 
        </div>
    )
}

 

클래스형 컴포넌트

 - class로 정의하고 render() 함수에서 jsx 코드를 반환

 class 클래스컴포넌트 extends React.Component {

  render(){

    return (

    <div>클래스형 컴포넌트 와꾸</div>
  )
}}

 

react hooks등장 전에는 클래스형 컴포넌트에서'만' state(상태)를 사용할 수 있고 각종 라이프사이클 및 메서드를 이용하여 컴포넌트가 마운트 언마운트 될 때 추가 작업을 하게 조작 할 수 있었고 함수형 컴포넌트는 간단한 componenet 밖에 못 만들었음. 

 

*아래는 hooks에 관한 공식 문서 설명 중 일부

더보기

Hook은 함수 컴포넌트에서 React state와 생명주기 기능(lifecycle features)을 “연동(hook into)“할 수 있게 해주는 함수입니다. Hook은 class 안에서는 동작하지 않습니다. 대신 class 없이 React를 사용할 수 있게 해주는 것입니다. (하지만 이미 짜놓은 컴포넌트를 모조리 재작성하는 것은 권장하지 않습니다. 대신 새로 작성하는 컴포넌트부터는 Hook을 이용하시면 됩니다.)

현재는 React 측에서도 함수형을 권장하고 있지만 class형 또한 계속 지원하니 기존의 것을 수정 할 필요는 없다

또한, 커뮤니티가 매~우 큰 React 생태계에서 기존의 class형 컴포넌트가 유지보수 되고 있고 docs 또한 아직class형이 많다.  나같은 react 병아리는 함수형을 배우되 class형은 개념정도만 알아두면 될듯~ 뭐 회사에서 쓰면 추가로 배워야지모..

 

 

요 며칠 집 근처에 스터디카페를 다니고 있는데 썩 분위기가 좋아서 한달 결재를했다. 독서실도 카페도 나름대로 여기저기 많이 다녀서 별 기대 안했는데 생각보다 좋아서 잘 공부하는중.

며칠 앉아서 계속 미뤄뒀던 마지막 프로젝트 리뉴얼도 하고 (아니~ 같이 작업한 프론트 분이 여기저기 레거시 코드 작성해서 유지보수 하느라 고생좀 함.. 잘 하시는 분이었는데 마지막에 힘이 좀 빠지셨었나봄ㅠ) 면접준비(?) 핑계로 이것저것 강의듣고 공부하고 있음. 트러블 슈팅도 다시 작성해야되는데 카페에서 노트북으로만 하려니 진도가 안나가서 그냥저냥 공부만 하고있다~

특새도 꼬박꼬박 가서 벌써 내일이 마지막이고 운동도 다시 잘 하고있어서 썩어가던 몸이 금방 회복했다 아~주 긍정적! 하 근데, 이력서 좀 수정하고 슬슬 제출해야 되는데 하기 댕싫네^ㅗ^  

[Q. 변수 생성 3단계]

 

선언 / 초기화 / 할당 이있다.

 

1) 선언

 - 변수를 말 그대로 선언만 해서 변수 객체에 등록함

2) 초기화

 - 변수 객체에 대한 메모리를 할당하고, 변수는 undefined로 초기화

3) 할당

 - 초기화된 변수에 값을 할당

 

var / let / const 로 차이를 알아보자!

console.log(name);   // undefined

var name = "jack957";

 =>  error가 아닌 undefined 출력, var는 변수 선언 시 선언과 초기화가 동시에 일어나기 때문

 

아래와 동일함

var name;

console.log(name);

name = "jack957";

 

console.log(name);  // ReferenceError: name is not defined

let name = "jack957";

 =>  let은 error 발생, let도 호이스팅 되었지만 let은 선언과 초기화가 따로 일어남.

       초기화 이전에 변수에 접근하니까 ReferenceError가 발생한 것 

 

const name = "jack957"; // 선언과 초기화가 동시에 일어나서 정상작동

const name;                    //  Uncaught SyntaxError: Missing initializer in const declaration (선언만 했기 때문에 에러 발생!)

 => const 는 값이 정해지면 변경이 불가능하기 때문에, 선언할 경우 선언과 초기화를 같이 해줘야됨!

 

 

[Q. 호이스팅 이란]

자바스크립트는 실행될 때 ES6의 let, const를 포함한 모든 선언(var, let, const, function, class)를 호이스팅함.

호이스팅이란 유효범위 맨 위로 끌어올리는 것임. 실제로 끌어올리는 건 아니고 내부적으로 처리되고 메모리는 변화x

 

(함수 호이스팅)

함수선언문으로 정의된 함수는 실행되는 시점에 함수선언, 초기화, 할당이 한번에 이루어짐.

때문에 해당 함수는 유효범위 내의 어느곳에서도 호출이 가능.

 

but, 함수표현식으로 정의된 함수는 함수 호이스팅이 아닌 변수 호이스팅이 발생하기 때문에 유효범위 내에 있더라도 

함수 호이스팅이 발생x 함수표현식으로 작성할 때는 사용할 곳보다 위에서 작성해야됨.

 

평소에 함수선언문, 함수표현식, 호이스팅 여부와 관계없이 선언은 맨 위에서 작성하도록하자~

 

 

오늘부터 새벽 특새가있었다.

5시에 일어나야 늦지않게 갈 수 있는데, 2주넘게 새벽2시에 자다보니 자는것도 쉽지가 않았다...

그래도 교회 간다니까 번-쩍 깨워주셔서 일어나는건 어렵지 않았고 주섬주섬 준비해서 따릉이타고 교회로 향했다.

그런데 왠걸 안늦고 잘 갔는데 성전은 이미 꽉꽉 차있어 맨 뒤에 간이 의자에 앉아서 예배를 드렸고 2층도 3층도 만석이었다(세상에..) 사실 5시에 와서 인터치 청년 특송도 같이 했어야됐는데 좀 타협해서 새벽기도만 드리기로했었다.

특송 시간이되자 청년들이 앞에 섰는데, 5시에 온 청년들이 너무너무너무 많아서 찬송 부르기 전부터 그들의 모습에서 큰 은혜를 받았다. 그렇게 느낀건 나뿐만이 아니었으리라. 최상훈 목사님 설교는 말할 필요도 없이 최고였다.

 

새벽 기도가 끝나고 걸어서 집으로 향했는데 문득 '새벽기도엔 2시간30분 정도가 드려지는 시간이구나 하루에 가장 처음을 십일조로 드리는 거구나' 깨달음이 들었다. 처음도 아닌 새벽기도에 이런 생각이 든 것 또한 은혜었으리라.

 

뭐 그러고 집가서 아침먹고 1시간 자긴했다.. 갑자기 아침형 인간이 되기엔 평소랑 괴리가 컸다.. 이렇게 4일 특새 끝나고 나면 나아지겠지! 

SSE(Server Sent Event)

 

도입이유

 

문제1 SSE (Server-Sent Events) Message를 여러번 수신하는 문제 발생

 

해결

sse를 통한 알람 구현시 message를 여러번 수신하는 문제가 발생했습니다.

에러가 랜덤하게 발생하여 원인을 파악한 결과 sse 연결 시 랜더링을 순간적으로 여러번 발생시키는 경우 중첩으로 연결되어 response를 여러번 수신한다고 판단하였습니다.

 

해결 방법으로는 useEffect의 clean up 함수를 사용하여 component unmount 시에 연결을 끊어 중첩 연결을 방지해 문제를 해결했습니다. 

 

문제2 HTTP2 에러이슈 (로컬에선 오류발생 but 배포 시엔 ???)

SSE 구독 시에 해당 에러 발생

 -> 해결 내용 보기 https://appuals.com/http2-protocol-error/

문제3 기본 연결값 45000 milliseconds -> 최적 연결값으로 변경하기

 

문제4 코드 리팩토링 하면서 랜더링 최적화 하려고 get 불러오는걸 로그인 한 경우에만 하려고 if 문을 추가해줬는데

reducer를 호출 안하는 이슈 발생

해결 - userInfo 를 useState에 담아서 사용하다보니 컴포넌트 mount 시에는 state에 값이 담기지 않아 타이밍 이슈로 get이 호출되지 않았고, userInfo를 아래와같이 바로 로컬에서 가지고오는 구문으로 바꾸어 해결하였음

 

 

배운점

자잘한 오류는 당연히 딸려오는거라고 생각하면서 코딩했는데 트러블슈팅으로서 오류를 정리하면서 쭉 파고드니까 오류의 흐름이라던지 정리하면서 이해도가 많이 올라갔다.

'항해99' 카테고리의 다른 글

2주차 알고리즘  (0) 2022.11.19
2주차 알고리즘(2일차)  (0) 2022.11.19
2주차 알고리즘(1일차)  (0) 2022.11.19
1주차 프로젝트  (0) 2022.07.28
스파르타 코딩클럽 <웹개발 종합반> 회고  (0) 2022.04.13

10/30 TIL 너무 싱숭생숭한 하루였다.

어제 간만에 친구들만나 잘 놀고와서 12시쯤인가 씻고 누웠는데 카톡방이 시끄러웠다. 보니까 뭐 이태원이 어쩌고 저쩌고 하길래 구글 보니까 '50명이상 심정지... ' 같은 기사가  몇개나 헤드라인을 장식해있었다. 이 정도면 유투브에 영상 제보 있을거 같아서 들어가봤는데 역시 '현재 이태원 상황...'등의 각종 영상제보가 올라와있었다. 영상으로 보니 눈을 의심할 정도로 처참한 상황이 벌어져있었다. CPR 하려고 길거리에 대충 뉘어져있는 수십명의 심정지한 사람들 한명이라도 살리려고 심폐소생중인 사람들 좁은 골목에 너무 많은 인파가 모여 도미노처럼 쌓여있는 사람들 그와중에 할로윈데이라 기괴하게 분장한 모습들 그와 대비되는 이태원의 길거리 곳곳에서 나오는 팝 음악까지 '여기가 진짜 한국인가?' 란 생각이 스쳤고 너무 충격적이라 새벽이 늦도록 잠을 못이루고 계속 관련 영상과 기사를 찾아본 것 같다.   

 

다음날 아침 다시 본 영상과 뉴스에서 나오는 영상들에는 모자이크가 처리됐는데 밤 사이에 봤던 영상들은 적말이지 적나라해 하루종일 해당 사고가 머리속에서 떠나질 않았다. 교회 가서도 반갑게 인사하는 형제 자매님들이 영상에서 봄 참극과 너무 대비돼서 괴리감이 들었고 찬양부를때도 비슷한 감각에 휩싸여있었다. 뭔가 스트레스 였는지 하루종일 컨디션이 안 좋아 바로 집에가 잠을 청했고 저녁도 먹는둥 마는둥 시리얼 조금 먹고 카페와서 글을 쓴다.

 

아, 아침에 전에 만나던 친구한테 연락을 했었다. 헤어진지 1달정도 됐는데 이태원 가끔 가는 친구라 걱정 반 안부 반으로 연락했는데 카페에 온 지금에서까지 연락이 없어서 내일까지 연락 안되면 한번 집에 가볼 생각이 들정도로 걱정이 커졌었다 (그래도 잘 헤어지기도 했고 연락 안받을 친구는 아니었다). 그러다가 카페에 좀 있으니까 전화와서 30분정도 통화하고 이따 잠깐 보기로했다. 원래 몸이 안좋은 친구여서 사귈때도 걱정 엄청 시키더니 헤어져서 까지 걱정 시키는애는 얘가 처음이다 허허..

 

 

Q. 진행했던 프로젝트에서 어려웠던 부분을 해결한 경험을 설명해주세요

뭐 이것저것 새로운거 도입해서 한 프로젝트라 어려운거 하나 꼽기는 힘든데, 그래도 하나 정하자면 SSE!

SSE는 애초에 자료도 많이 없고 처음에 찾았던 자료들에서 프론트에서 연결만하면 되는 부분이에요~ 에 속아서 가볍게 생각했다가 끝없이 나오는 트러블슈팅에 거의 1주일 갈렸던거같음.

 

적당한 자료가 없어서 결국 전 기수 프로젝트 SSE 관련 코드를 많이 참고했는데 이게 또 우리는 안쓰는 React-Query 스택을 사용해서 어떻게 적용했는지 알아보려고 쿼리까지 거의 하루정도 공부해서 코드 복기했던게 골치가 아팠다

쿼리를 미리 공부좀 해놨으면 모를까 전혀 모르는 상태에서 프로젝트 막바지에 적용 하려고 공부하려니 골머리 아팠음..

 

그리고 요게 백엔드랑 연결하고 메세지 날려보면서 작업을 해야되는데 같이 맡았던 백엔드분이 집안사정으로 프로젝트 막바지에 5일정도 증발하셔서.. 프론트단에서 트러블슈팅부터 안되면 적용할 코드까지 2~3개정도 준비해놓고 백엔드분 올때까지 기다렸는데 지금 생각해도 멘탈 잘 잡고 뒷심 발휘한거 참 기특함.

 

그래서 SSE 하면서 배운건 코드 적인 것도 코든데 백엔드랑 협업할 때 커뮤니케이션이 얼마나 중요한지와 프로젝트에 사용할 스택을 고민하는 방법을 많이 배웠다. 사실 우리는 웹소켓을 사용해서 SSE를 사용할 필요가 없었고 나도 바빠서 백엔드분이 알람에 SSE 사용하자는 말이 그냥 필요한가 보다~ 적용했는데 더블 체크 했으면 며칠은 시간낭비 안했을거다.

뭐 배운것도 많으니 낭비는 아니지만.

 

쓰고보니까 면접질문+1 이아니고 TIL 처럼 됐는데 해당 내용은 깃에 현재진행형으로 더 정리중이라 후에 내용 첨부해야겠당 

 

항해99가 진짜 끝났당

 

스프린터스도 끝나고 항해8기 칭구들이란 쫑파티까지 하고오니까 조~금 끝난 실감이 들었다

새벽에도 게더 들어가면 몇명씩 모여서 공부하고 있고 항해도 '이거하세요 저거하세요~' 채찍질 하던게 엊그제라 실전 프로젝트 끝나고도 뭔가 계속 항해99 메타버스 안에 있는 느낌이 들었는데 이젠 진짜 니인살해~ 하니까 약간 섭섭한 거 같음

 

한 2주 잘 쉬었으니 바짝 취업준비해서 일해야징

생각해보면 나도 안 쉬고 잘 달려온거 같아 대견하다, 올해 2월까지 회사다니다가(3년동안 야근 오지게했음ㅎㅎ) 3개월 사전공부하고 항해 참가해서 여태 달려왔으니 뭔가 실전 프로젝트 끝나고 탁- 하고 전원이 꺼진거 같았다.

뭐 다들 그렇게 살아용~ 하면서 별거 아니라고 생각할 수도 있지만 그래도 나한테 칭찬 해주고 싶다 :) 

 

항해에서도 나처럼 다른직종 일하다가 -> 항해로 개발자 코스 밟은 사람들 꽤 있었는데 다들 잘됐으면 좋겠다 다들 열심히하자구~ 🙂

 

 

Q. 서버사이드 렌더링이 무엇인가요?

 

SPA -> CSR(client side rendering) 의 단점

1. 사용자가 첫 화면을 보기까지 시간이 오래 걸릴 수 있음

2. 썩 좋지 않은 SEO(search engine optimization)

 

MPA -> SSR(server side rendering) CSR의 단점 보완 But,

1. static sites에서 발생했던 blinking issue (전체 웹사이트를 다시 서버에서 받아오는 것과 동일해서 ux가 나빠짐)

2. 서버에 과부하가 걸리기 쉬움

3. 사용자가 빠르게 웹사이트를 확인할 수 있지만, 동적으로 데이터를 처리하는 자바스크립트를 아직 다운로드 받지 못해

 여기저기 클릭했는데 이벤트가 발생하지 않는 경우가 있음.

 -> 3번은 TTV (time to view) TTI (time to interact) 를 알아야함 

 

 

참고 유튜브

https://www.youtube.com/watch?v=iZ9csAfU5Os

 

항해99 스프린터스 일정으로 역삼역에 모시깽이 건물에 댕겨왔다. 회의방 하나 빌려서 취업지원 해주는 프로그램 이었는데,이동현 강사(웹개발 플러스 강의 잠깐 나오는 아저씬줄 알았는데 무슨 개발 팀장이었음) 가 30분정도 프레젠테이션 하고 테이블마다 버디(항해 수료생 중 취업3달~ 정도 된 사람들)들이 본인들 취업 노하우 비슷하게 알려줬다.

뭐 엄~청 도움됐다기보다 그냥저냥 '다들 이력서 열심히 내서 취업했구나' 싶어서 좀 의욕 생긴게 수확이었음

덕분에 다시 화이팅 할 의욕이 생겼달까 무튼, 2시간 바짝 특강하고 항해측에서 맛있는거 시켜줘서 먹으면서 수다좀 떨다가 왔당

 

 

RESTful하다는 것은 어떤 의미인지 설명해주세요

RESTful 이란 REST API의 설계규칙을 올바르게 지킨 시스템을 의미합니다.

REST는(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다.

REST API의 설계규칙은 소프트웨어 간 HTTP로 통신할 때

자원(Resource)은 URI로 /행위는 method로 /결과는 응답코드(ex.201)로 나타내는 것이 설계 규칙이고 규칙대로 설계하여 HTTP 가 원래 가지고 있는 특성을 잘 활용한 형식을 RESTful 하다고 합니다.

 

좀 더 Deep한! 우아한 TECH 영상 정리

https://www.youtube.com/watch?v=Nxi8Ur89Akw&t=334s

→ 1. 자원에 대한 식별

자원 이란 이름을 지닐 수 있는 모든 정보/ 개념적인 대상(

ex. 문서, 이미지, 자원들의 집합, 실존하는 대상 등)

→ 2. 행위를 통한 자원의 조작

행위: 특정한 상태의 자원에 대한 표현 (CRUD)

→ 3. 자기 서술적 메세지 (메시지는 스스로에 대해 설명해야 한다. 보고 이해할 수 있어야함.)

 

이해하기 쉽게 설명한 유투브

https://www.youtube.com/watch?v=iOueE9AXDQQ

참고 사이트

https://khj93.tistory.com/m/entry/네트워크-REST-API란-REST-RESTful이란

 

어제 친척 결혼식이라 광주(전남) 댕겨왔다 하루종일 차 타고 식장에서 뭐좀 하고 그러고 왔더니

이력서 준비하기 개~싫어서 일요일 저녁 카페 오기까지 빈둥빈둥 놀았다.

내일은 진짜 이력서 수정하고 어느정도 완성해야지 화요일에 제출하는데.. 잘 할 수있겠지?

체력이 바닥 난 거 같아서 요번주부터 다시 좀 뛰면서 운동하고있다. 진짜 힘들면 아무것도 못하는듯 나이든거 또 한번 체감한다.

무튼 면접 예상질문 공부하다가 졸려서 끄적여봤다.

항해기간 열심히 했으니까 마지막까지 잘 해서 취업해 봅시다~~ 다들 화이팅!

 

 

 

+ Recent posts