Knowledge

Knowledge/Test

프론트엔드 구현 세부 사항 테스트

이 글은 Kent C. Dodds의 Testing Implementation Details 포스트를 번역한 글입니다. Thank you Kent C. Dodds. Because of your posts, I can continue to grow as an engineer. 이전에 enzyme를 사용할 때 (그 시절 모두가 사용했던 것처럼), 나는 enzyme의 특정 API를 신경 써서 사용했다. shallow rendering를 완전히 피하기 위해, instance(), state(), find('컴포넌트이름')와 같은 API를 사용하지 않았다. 그리고 다른 사람들의 풀 리퀘스트 코드를 검토할 때, 왜 이런 API들을 피해야 하는지에 대해 몇 번이고 설명했다. 그 이유는 이런 API들이 컴포넌트의 구현 ..

Knowledge/Test

프론트엔드에서는 어떤 것을 테스트 해야 할까?

이 글은 Kent C. Dodds의 How to know what to test 포스트를 번역한 글입니다. Thank you Kent C. Dodds. Because of your posts, I can continue to grow as an engineer. 테스트하는 방법을 아는 것은 훌륭하고 중요한 일이다. 나는 사람들에게 테스트의 기본 사항, 도구 구성 방법, 특정 시나리오에 대한 테스트 작성 방법 등을 알려주는 많은 콘텐츠를 만들었다. 하지만 테스트를 작성하는 방법을 알아도, 애플리케이션에 대한 신뢰성을 얻기 위해서는 그저 절반일 뿐이다. 무엇을 테스트할지 아는 것은 중요한 또 다른 절반이다. 워크숍 자료와 TestingJavaScript.com에서 무엇을 테스트해야 하는지 아는 방법에 대해 ..

Knowledge/Test

프론트엔드에서의 Static, Unit, Integration, E2E 테스트

이 글은 Kent C. Dodds의 Static vs Unit vs Integration vs E2E Testing for Frontend Apps 포스트를 번역한 글입니다. Thank you Kent C. Dodds. Because of your posts, I can continue to grow as an engineer. TestingJavaScript.com에 있는 "Testing Practices with J.B. Rainsberger" 인터뷰에서 그는 내가 정말 좋아하는 비유를 들려주었다. 그는 다음과 같이 말했다. "You can throw paint against the wall and eventually you might get most of the wall, but until you ..

Knowledge/Web

[yarn] npm을 막고 yarn으로 강제하는 방법

패키지 매니저로 yarn을 사용하는데, 협업하는 과정에서 실수로 npm 명령어를 사용해서 package-lock.json 파일이 생성되는 경우가 종종 발생한다. 그때 마다 'npm 사용하지 마시고, yarn을 사용해주세요.'라고 말해야 하는 상황(시간이 지나서 또 package-lock.json 파일이 올라온다면...)을 피하고 싶다면 npm을 막고 yarn으로 강제하자. 3가지의 강제화 방법이 있다. package.json 파일의 scripts 속성의 preinstall 속성을 이용한 강제화 (추천) // package.json { // ... 생략 "scripts": { // ... 생략 "preinstall": "node -e 'if(!/yarn\\.js$/.test(process.env.npm_e..

Knowledge/Security

[Security] Access control 종류(ACL, RBAC, ABAC)와 Coarse-grained, Fine-grained

Coarse와 Fine Coarse-grained와 Fine-grained의 사전적 뜻은 각각 결이 거친, 결이 고운 이란 뜻이라고 한다. 감이 잡히지 않는다. Coarse, Fine 단어로만 찾아보면 아래와 같다. Coarse Fine 즉 하나의 물질이 있다면 이것을 큰 입자들로 나누냐, 작은 입자들로 나누냐의 차이다. 사실 Coarse-grained와 Fine-grained는 프로그래밍에서 전반적으로 사용하는 용어다. 예를 들어 구글 시트 API를 호출하려면, 발급받은 ClientId와 SecretKey로 인증을 한 후에 구글 시트를 불러올 수 있다. 이때 Coarse-grained는 getGoogleSheet 함수 안에 인증 + 구글 시트 조회 + Rows 값 조회를 전부 넣는 것을 뜻한다. 반면 ..

Knowledge/Test

프론트엔드 테스트 - TDD와 종류(Unit, Integration, E2E)

테스트 주도 개발(TDD)이란? TDD는 Test-Driven Development의 약자로 실제 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 개발 프로세스다. TDD 프로세스는 다음 단계를 따른다. 테스트 코드 작성: 우선 구현하려는 동작을 설명하는 테스트 코드를 작성한다. 이때, 아직 동작을 구현하는 코드를 작성하지 않았으므로 테스트는 실패 해야한다. 테스트 실행: 테스트를 실행한다. 위에 언급했듯이, 코드를 작성하지 않았으므로 실패해야한다. 코드 작성: 1번에 작성했던 설명에 부합하는 코드를 작성한다. 이때 테스트를 통과하기 위한 목적으로만 작성해야한다. 즉 아직 존재하지 않은 많은 문제들을 생각하여 코드를 작성하기보다는 테스트 목표에 집중하여 작성하는 것이 중요하다. 테스트 실행: 테스트를 ..

SooJae
'Knowledge' 카테고리의 글 목록