
💡 개발자는 자신이 개발하는 제품이 문제가 없는 플로우를 가지고 있는지 검증할 의무가 있고, 그에 대한 책임이 요구된다. 하지만 하나의 어플리케이션의 동작과 기능을 테스트하기 위해서는 생각보다 여러 개의 과정들이 필요하다. 테스트를 위해 같은 과정을 반복해서 수행하게 되면 번거로울 뿐만 아니라 리소스적 낭비도 발생할 것이다. 그럼 동작을 테스트해보기 위해 코드를 매번 수정하는 등의 과정을 거치지 않고 효율적인 테스트를 하는 방법은 어떤 것들이 있을까? 테스트 코드와 TDD, 여러번 들어본 그 단어들을 파헤쳐보자!테스트 코드가 필요한 이유?테스트 코드(Test code)는 말 그대로 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드다.테스트 코드는 일일이 수작업으로 들어가는 동작, 기능에 대한 점검..

💡 인턴쉽을 시작하기 전의 나는 레이어의 ‘레’ 자도 모르는 상태였다. 처음 프로젝트를 init 하고서는, 페이지의 내용과 레이아웃 정도만 기획하고 프로젝트의 구현을 시작했다. ‘구조'라는 것에 대해 깊이 생각해본적도 없었으니, 왜 중요한지도 알 수가 없었다. 지금와서 돌아보니 레이어가 무엇인지 알고있었더라면 이렇게 많은 구조적 시행착오를 겪지는 않았을 것 같다. 이번 주제에서는 내가 경험하면서 느낀 레이어의 정의와 기준에 대해 말해보고, 레이어에 대한 생각을 확장해나갈 수 있는 시간이 되었으면 한다.💡 인턴쉽을 시작하기 전의 나는 레이어의 ‘레’ 자도 모르는 상태였다. 처음 프로젝트를 init 하고서는, 페이지의 내용과 레이아웃 정도만 기획하고 프로젝트의 구현을 시작했다. ‘구조'라는 것에 대해 깊..

💡 모듈이란 프로그램을 구성하는 시스템을 기능 단위로 분리해서 독립적으로 사용할 수 있도록 나눈 코드 조각을 말한다. 소프트웨어를 설계할 때, 모듈화를 잘 해놓으면 코드의 재사용성이 높아지고 유지보수가 수월해진다. 그럼 어떻게 해야 모듈화를 ‘잘’하는 것일까? 소프트웨어의 모든 설계는 맞닥뜨린 상황과 리소스에 따라 최선의 선택이 달라진다. 모듈화도 역시 그럴 것이다. 이번 주제에서는 모듈화를 할 때 최소한 지켜야할 것들과 고려해야 할 것들이 무엇이 있으며, 나는 어떤 방법을 선택할 것인가 고민하는 시간을 가져보려 한다.나는 모듈화를 어떻게 해왔지? OpenWeatherMap API를 통해 만들었던 인턴 프로젝트(Vue 2)의 모듈을 잠깐 소개해보겠다.store의 모듈화store를 user, auth, ..

💡 validation은 서비스를 구현하다보면 반드시 마주하는 일 중 하나이고, 그만큼 기본적이며 필수적으로 밟아야 할 절차이다. 이번 주제에서는 validation이 무엇이고 왜 하는지, 보통 어디서 어떻게 검증하는지를 간략히 살펴보자. 그리고 클라이언트의 validation의 범위는 어디까지이며 어느정도의 검증이 적절할지를 고민해보자. validationvalidation이란 데이터가 어떤 특정 조건에 맞는 값을 가질 수 있도록 검사하는 것을 말한다. 유효성 검사는 서버에 데이터를 제출하거나, 사용자를 인증할 때 흔히 시행된다. 이러한 데이터 검증은 클라이언트 단에서만 검증하는 경우도 있고, 서버의 결과값에 의존하는 경우도 있다. (예외적 상황에 대한 대비는 서버, 클라이언트 모두 필요하다!) 클라..

버그와 에러는 다른 것일까?에러란 무엇일까? 어떤 동작이나 결과를 기대하고 프로그래밍을 했을 때, 기대한 결과 값이 나오지 않거나, 의도하지 않은 방향으로 동작할 때 이를 에러라고 말한다.그렇다면 우리가 흔히 말하는 버그란 무엇일까? 버그는 로직을 설계하고 구현할 때, 보통 실수하거나 로직의 흐름을 파악하지 못해서 발생하는 문제적 상황을 말하는 것이라고 알고 있다. 코드적인 문제이기 때문에 우리는 “버그를 고친다.” 라는 표현을 자주 사용한다.에러도 사실 버그와 거의 같은 의미로 혼용되고 있다. 하지만 엄밀히 말하자면 에러는 코드적인 문제 보다는 외부 요인에 의해서 발생하는 문제 상황을 말한다. 예를 들어 vue와 브라우저 환경이 충돌하는 경우라든가, 서버와의 통신을 통해서 발생하는 에러도 클라이언트 단..

레거시 코드?레거시 코드, 개발자로서 앞으로 항상 마주치게 될 존재! 레거시 코드를 대하는 입장과 태도들은 개발자마다 다를 수밖에 없다. 그리고 다른 입장 속에서 하나의 결정을 내려야 할 때도 있을 것이다. 그 때를 위해 레거시에 대한 나의 입장을 고민하고 정리해놓을 필요가 있다.그렇다면 나는 레거시 코드를 어떻게 생각하고 있었는가?레거시 코드하면 떠오르는 느낌은 이렇다.더이상 회사(혹은 개발 생태계) 내에서 사용하지 않는 기술을 사용한 코드다른 사람이 더이상 유지보수하기 어려운 코드이해하기 어려운 변수명, 함수명이해하기 어려운 로직에 주석이 없는 경우 Typemock의 CEO인 Eli Lopian은 레거시 코드를 "개발자가 변경하기를 두려워하는 코드"로 정의한다. 유산(legacy)이라는 말을 쓰고..
- Total
- Today
- Yesterday
- 개발
- 번들러
- 모듈화
- 스파게티코드
- virtualdom
- 셀레니움
- 응집도
- await
- 결합도
- 일급객체
- async
- Vue
- 레거시코드
- 번들링
- 함수형프로그래밍
- 가상돔
- E2E테스트
- 인턴
- 비동기패턴
- React
- HMR
- gitmoji
- 코드리뷰
- 모듈
- 비동기처리
- webpack
- 데이터검증
- 프론트엔드
- 일급함수
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |