분류 전체보기
[Next.js] SSR프레임워크 Next.js와 css-in-JS
이번에 진행하는 프로젝트에 Next.js를 적용하려는 생각을 해보았다. 프로젝트는 이제 갓 시작해서 한 10%~20% 정도 진행된 것 같다. 이상황에서 Next.js를 적용하고 싶었던 이유는 1. SSR의 장점 SPA(Single Page Application)는 리소스를 많이 잡아먹을 수 밖에 없다. 기타 등등 이유 2. Next.js 학습 Next.js 를 제대로 다뤄본 경험이 없었기에 이 기회에 프로젝트에 적용을 해보고 싶었다. 3. 기업들 내가 목표로하는 몇몇 기업들에서 Next.js를 사용하고 있기에 해당 기술의 사용경험이 꼭 필요했다. 등등.. 여러가지 이유가 있지만 사실 2-3번이 가장 큰것 같다. 그럼에도 Next.js로 이주하지는 않기로 했다 그이유는 1. emotion과 next.js의..
[React] Deep Dive 모던 리액트(6) 클래스형&함수형 컴포넌트
함수형 컴포넌트는 리액트 0.14버전부터 있었던 생각보다 오래된 문법이다. var Aquarium = (props) -> { var fish = getFish(props.species) return {fish} } var Aquarium = ({species}) => {getFish(species)} 이당시 함수형 컴포넌트는 클래스형 컴포넌트에서 별다른 생명주기 메서드나 상태가 없이 단순히 render를 하는 경우에만 사용되었다. 함수형 컴포넌트에 훅이 등장하면서 점점 복잡한 클래스 컴포넌트보다 함수형 컴포넌트가 사용되었다. 이 과도기에서 문제도 많았고 과연 함수형 컴포넌트와 클래스형 컴포넌트의 차이가 무엇인지 알 필요도 있다. 클래스형 컴포넌트 리액트 16.8 미만으로 작성된 코드는 대부분 클래스형 컴..
[JS] 징검다리 건너기
문제를 푸는 접근방식은 단순했다. k범위만큼씩 자르면서 해당 범위의 최댓값중 가장 작은 값을 얻어내면 된다. [ 2, 4, 5 ] [ 4, 5, 3 ] [ 5, 3, 2 ] [ 3, 2, 1 ] [ 2, 1, 4 ] [ 1, 4, 2 ] [ 4, 2, 5 ] [ 2, 5, 1 ] 예제로 따지면 위 범위중에서 범위안의 최댓값 중 최솟값은 3이다. 따라서 정답이 3이 되게 된다! 하지만 아래와 같이 내장함수를 사용해서는 풀 수 없었다. (예상한대로) function solution(stones, k) { let ret = Infinity for (let i = 0 ; i 0 && this.ary[idx][1] > this.ary[parentIdx][1]) { this.swap(idx, parentIdx); ..
조급해하지 않기 : ]
대학교의 모든 수업도 종강하고 이제 졸업을 앞두었다. 이제 본격적인 진짜 취준생이라고 생각하고 이력서,공고들을 보기 시작했는데 나 자신이 최근들어 많이 조급해진 것 같다. 내가 생각한 것보다 나자신이 아직 많이 부족하다 생각하는 부분이 큰것같다. 이런 부분들은 사실 공부해서 채워가면 되는데 주변 친구들이 하나 둘 취직하고 돈을 벌면서 조금은 쫓긴다(?)라는 감정이 종강 하면서 많이 찾아온 것 같다. 마라톤에서 남들이 조금 일찍 나간다고 무리하게 템포를 올리면 후폭풍이 와 완주 할 수 없는 법이다. 내가 전자공학을 왜 포기하고 개발 분야 그것도 프론트 분야로 뛰어들었는지 계속 생각할 필요가 있을 것 같다. 지난 2~3년여간 나는 분명 열심히 살았다. 내 자신이 생각하기에 분명 그렇다. 하지만 "어떻게든 되..
[React] Deep Dive 모던 리액트(5) 가상 DOM & 리액트 파이버
리액트의 가장 큰 특징중 하나는 실제 DOM이 아닌 가상 DOM을 운영한다는 것이다! 이러한 가상 DOM은 왜 만들어졌고 실제 DOM과는 어떤차이가 있는지 알아보자. DOM(Document Object Model) 웹페이지에 대한 인터페이스로 브라우저가 웹 페이지의 콘텐츠와 구조를 어떠한 방식으로 보여줄지에 대한 정보가 담겨있다. 브라우저가 웹 사이트 접근 요청을 받고 화면은 그리는 일은 아래의 순서대로 일어난다. 1. 브라우저가 URL에서 HTML파일을 다운로드 2. HTML을 파싱하여 DOM 트리를 만든다. 3. (2)번과정 진행중 CSS파일을 만나면 CSS파일을 다운로드 4. CSS를 파싱하여 CSSOM을 구성 5. (2)번 DOM노드를 순회한다. (display : none 과 같은 사용자에게 안..
[React] Deep Dive 모던 리액트(4) JSX
이제 리액트의 핵심 요소들을 하나씩 알아보자. JSX(JavaScript XML) 많은 프론트엔드 개발자들이 착각하는 것은 JSX가 리액트의 전유물이라는 것이다. 물론 JSX가 리액트가 등장하며 소개된 구문인점은 맞지만 리액트와는 독립적으로 동작하는 문법이다. JSX는 ECMAScript 자바스크립트 표준의 일부는 아니기 때문에 해당 코드를 바로 실행하면 에러가 발생한다. 따라서 JSX를 활용하려면 트랜스파일러를 거쳐서 의미있는 JS 코드로 변환하는 작업이 필요하다. JSX의 주 목적중 하나는 HTML이나 XML을 JS내부에 표현하는 것이다. 그 외에도 JSX내부에 트리구조로 표현하고 싶은 다양한 것들을 작성하고 이를 JS가 이해할 수 있는 코드로 변경하는 것이 주된 목적이라고 할 수 있다. JSXEle..