[번역] 웹어셈블리 모듈의 생성과 동작

웹어셈블리는 자바스크립트가 아닌 프로그래밍 언어를 웹페이지에서 실행하기 위한 방법이다. 예전에는 웹페이지 내의 다른 부분들과 상호작용하기 위해 브라우저에서 코드를 실행시키기 위한 유일한 선택지가 자바스크립트였다. 그래서 사람들이 웹어셈블리가 빠르다고 이야기할 때, 유일한 비교대상은 자바스크립트다. 하지만 그것이 웹어셈블리와 자바스크립트 중에서 하나만 선택해서 사용해야 한다는 의미는 아니다. 사실, 우리는 개발자들이 같은 어플리케이션 내에서 웹어셈블리와 자바스크립트를 모두 사용하길 바란다. 심지어 웹어셈블리를 직접 작성하지 않더라도, 그 이점을 누릴 수 있다.

[번역] 어셈블리 집중 코스

웹어셈블리가 어떻게 작동하는지를 이해하기 위해서는, 어셈블리가 무엇이고 컴파일러가 어떻게 그것을 생성해내는지를 이해하는 것이 도움이 될 것이다. JIT에 대해 설명한 글에서 나는 기계와 의사소통을 하는 것이 마치 외계인과 의사소통을 하는 것과 비슷하다고 설명했다. 03-01-alien03-500x286.png 이제 나는 그 외계인의 뇌가 어떻게 작동하는지를 - 즉, 기계의 뇌가 들어오는 정보를 해석하고 이해하는지 - 를 살펴보도록 하겠다.

[번역] 저스트-인-타임(JIT) 컴파일러 집중 코스

자바스크립트는 태생이 느렸지만, JIT라고 불리는 무언가 덕분에 빨라지게 되었다. 그런데 JIT는 어떻게 동작하는걸까? 자바스크립트는 브라우저에서 어떻게 실행될까 개발자로서 자바스크립트를 페이지에 추가하면, 당신은 목표와 문제를 갖게 된다. 목표 : 당신은 컴퓨터에게 무엇을 할지 말하고 싶다. 문제 : 당신과 컴퓨터는 다른 언어를 사용해서 이야기한다. 당신은 인간의 언어를 사용하고, 컴퓨터는 기계의 언어를 사용한다. 비록 당신이 자바스크립트나 다른 상위레벨 프로그래밍 언어들이 인간의 언어가 아니라고 생각할 지라도, 이들은 실제로 인간의 언어이다. 이들 언어는 기계가 아닌 인간이 이해하기 위해 디자인되었다.

[번역] 카툰으로 소개하는 웹어셈블리

웹어셈블리는 자바스크립트가 아닌 다른 프로그래밍 언어로 작성된 코드를 브라우저에서 실행시키기 위한 방법이다. 그래서 사람들이 웹어셈블리가 빠르다고 이야기하는 건, 자바스크립트와 비교했을 때 빠르다는 말이다. 지금 나는 자바스크립트나 웹어셈블리 둘 중의 하나만 선택해야 한다고 말하고 싶은 것이 아니다. 사실, 우리는 개발자들이 동일한 어플리케이션에서 웹어셈블리와 자바스크립트를 모두 사용하기를 기대한다.

[번역] 일급(First-Class) 테스트

부적절한 학습의 희생양이 되어 단위 테스트를 포기하게 되는 사람들의 블로그를 찾아내는 건 어쩌면 나의 숙명일지도 모르겠다. 이 블로그도 바로 그 중의 하나이다. 저자는 모든 협력 객체(collaborator)를 모킹함으로 인해 단위 테스트가 얼마나 깨지기 쉬운 상태가 되었는지를 이야기한다. (한숨). 협력 객체가 변경될 때마다 모의(mock) 개체들이 변경되어야만 한다. 그리고 당연히 그로인해 단위 테스트는 깨지기 쉬운 상태가 된다. 더 나아가서 저자는 어떻게 단위 테스트를 버리고 대신 흔히들 말하는 "시스템 테스트"를 시작했는지에 대해서 이야기한다. 그의 어휘에 따르면 "시스템 테스트"는 단순히 "단위 테스트"보다 좀더 종단간 (end-to-end) 에 가까운 테스트이다.

[번역] 자바스크립트의 재귀, PTC, TCO, STC 에 대한 모든 것

요즘은 모두가 함수형 프로그래밍과 그 개념에 대해서 열광적인 것 같다. 하지만 많은 사람들이 재귀(Recursion)나, 특히 적절한 꼬리 호출(Tail Call)에 대해서는 이야기하지 않는 것 같다. 이는 스택이 넘치는 일 없이 깔끔하고 간결한 코드를 작성하기 위해 매우 중요한데도 말이다. 이 글에서는 재귀를 더 잘 시각화하고 생각할 수 있는 팁을 제공하고, 적절한 꼬리 호출, 꼬리 호출 최적화, 문법적 꼬리 호출이 무엇인지와 각각의 차이점, 작동 방식, 그리고 주요 자바스크립트 엔진에서 어떤 식으로 구현되어있는지에 대해 설명하도록 하겠다.

[번역] CSS의 진화 : CSS 부터 SASS, BEM, CSS 모듈, 스타일드 컴포넌트 까지

인터넷이 시작된 이후로 우리는 항상 웹사이트를 꾸며야 했고, CSS는 언제나 우리 주변에 있으면서 몇년동안 자신만의 페이스로 진화해 왔다. 이 글은 여기에 대한 자세한 내용을 여러분에게 알려주려고 한다. 먼저 우리는 CSS가 무엇인지에 대해서 공감대를 형성해야 하는데, CSS가 마크업 언어로 쓰여진 문서의 표현을 기술하기 위해 사용된다는 점에 대해서는 우리 모두 동의하고 있을거라 생각한다. CSS가 꾸준히 진화해 왔으며 최근에 더욱 강력해졌다는 것은 새로울 것이 없지만, CSS를 팀단위의 작업에서 사용하기 위해서는 부가적인 도구가 필요하다는 것도 다들 알고있을 것이다.