전체 글

코드는 효율적으로, 공부는 비효율적으로
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 값 조회를 전부 넣는 것을 뜻한다. 반면 ..

Framework/React

[React] ChatGPT와 구글 스프레드 시트를 이용한 i18n작업

ChatGPT 최근 ChatGPT가 핫하다. 필자도 프로그래밍 관련 질문들은 구글링 하기 전에, 먼저 ChatGPT에게 물어본다. 놀라운 부분은 필자가 adopt라는 scope function이 kotlin에 있지 않냐고 물어봤더니, 없다고 하는 것에 그치지 않고, adopt의 늬앙스가 apply, also와 유사하여 사용자가 헷갈린 것이라 판단해, apply와 also에 대해 설명해 준다. 이 뛰어난 기능을 어딘가에 활용해볼까 고민하던 중, ChatGPT의 확장 프로그램을 구글 스프레드 시트에 설치하여 활용할 수 있다는 소식을 듣고, 구글 스프레드 시트로 작업한 i18n에 활용하기로 결정했다. 구글 스프레드 시트를 이용한 i18n 자동화 방법은 아래 게시물을 보는 것을 추천한다. 이런 게시물을 볼 때마..

Knowledge/Test

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

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

Tools/IntelliJ

[Intellij] 인텔리제이에 ChatGPT 플러그인 적용

23년 3월 11일 - ChatGPT 플러그인 2.1.3 버전 기준으로 정보 업데이트 이제 Intellij에도 ChatGPT 플러그인을 적용할 수 있다. ChatGPT 플러그인 설치 1. Preferences... 메뉴( Mac 단축키: Command + , ) - > Plugins -> ChatGPT 플러그인 설치 2. https://platform.openai.com/account/api-keys 에 로그인하고 API 키 발급 3. 인텔리제이 사이드 바에 ChatGPT 아이콘 클릭 후, 설정 아이콘 클릭 4. Official API키를 추가한다. (직접 ChatGPT에 요청을 보내는 API 서버를 만들었다면, Customize에 API 주소를 넣으면 된다.) ※ Email과 Password를 입력하고..

SooJae
이수재 블로그