일상/2020~2022

타입스크립트를 공부하다가

참참. 2022. 7. 24. 10:32

최근 사내 타입스크립트 스터디에 들어갔다. 타입스크립트는 자바스크립트의 확장판같은 건데 타입스크립트로 코딩을 하면 컴퓨터는 그걸 다시 자바스크립트 코드로 바꿔준다.(자바스크립트는 웹에서 널리 쓰이는 프로그래밍 언어다.) 어차피 다시 자바스크립트 코드로 바꿔서 실행할건데  처음부터 자바스크립트로 코딩하지 않고 굳이 타입스크립트로 한 뒤에 변환하는 이유가 뭘까? 여러 장점이 있겠지만 큰 장점 중 하나는 이름에서 알 수 있듯 "타입"에 있다.

타입(데이터타입)에는 "문자열", "숫자", "boolean(참거짓)" 등이 있다. 프로그래밍에서는 어떤 값이 있을 때 그게 어떤 타입인지를 따지는 게 중요할 때가 있다. 보통 회원가입할 때 전화번호나 이메일은 특정형식에 맞게 입력하지 않으면 가입이 안되도록 막아서 유저의 단순한 실수를 미연에 방지하고 무의미한 데이터가 DB에 들어오지 않도록 처리한다. 그런 것처럼 프로그래밍 언어에서 타입은 숫자가 들어와야할 곳에 문자열이 들어오는 상황이 벌어진다든가 하면 에러를 띄울 수 있도록 해준다.

뭐 그렇게 엉뚱한 값이 들어올 일이 많은가 싶을 수도 있겠지만 수십, 수백 명의 개발자가 하나의 프로그램(애플리케이션)의 코드를 만들고 수정해나간다면 비일비재하다. 다른 사람이 작성한 코드를 잘못 해석하거나 혹은 그런 코드가 존재하는지 모르거나, 다른 곳에서 이미 사용하고 있는 이름을 사용해서 꼬여버리거나 그럴 일이 아주 많다는 말이다.

자바스크립트는 타입을 엄격하게 제한하여 에러를 띄워주는 기능이 약한 편이고, 타입스크립트는 처음부터 어디에 어떤 타입의 데이터가 들어와야하는지를 정해서 정확히 그 타입의 데이터가 아니면 자바스크립트로 변환하는 과정에서 에러를 만들어준다. 즉, 타입스크립트는 개발자가 더 많은 에러메시지를 보기 위해 만들어졌다고 볼 수 있다.(마이크로소프트가 만들었다.) 자바스크립트가 관대하게 허용해서 실행해 줄만한 코드도 타입스크립트는 얄짤없이 에러다. 에러는 안 좋은 거 아닌가? 왜 더 많은 에러를 보려고 이렇게까지 하나?

사실 에러는 좋은 것이다. 특히 이런 개발 단계에서의 자세한 에러메시지는 프로그램이 잘못 설계되어 사용자가 불편을 겪을 수 있는 문제나 나중에 프로그램을 수정, 발전시킬 때 겪을 문제를 미연에 방지하는데 큰 도움을 준다. 개발자가 경험이 부족해서든 단순히 실수로든 뭔가 잘못됐거나 나중에 문제가 생길 가능성이 있는 코드를 짜면 애초부터 통과시키지 않는 것이다. 그러므로 에러가 나면 고마운 일이다. 게다가 에러메시지로 친절하게 어느 파일의 몇번째 줄에서 어떤 걸 잘못한 것 같다고 알려주기까지 한다.

사는 것도 비슷한 것 같다. 코드를 잘못 짜면 에러가 나듯이, 스트레스를 무시하고 계속 자신을 채찍질하며 경쟁하다보면 번아웃증후군이 오는 식으로 신호가 올 수도 있다. 코딩에서의 에러야 설계자가 의도한 일정한 규칙에 따라 일관된 에러를 논리적인 언어로 띄워주므로 많은 경우에는 비교적 찾아내기 쉬운 편이다. 그러나 몸과 마음이 보내는 신호는 일관되지 않을 수도 있고 논리적이지 않을 수도 있다. 그러다보니 문제가 아주 커지기 전까지는 알아채지 못하는 경우도 많다.

만약 요즘 기분이 자주 안 좋고, 몸도 여기저기 삐걱거린다면 힘들고 짜증이 나겠지만 거기서 무언가를 발견하라는 고마운 신호인지도 모른다. 관계도 그렇다. 관계만큼 큰 행복과 큰 고통을 동시에 주는 것이 없다. 나 자신과 잘 지내는 것도 힘든데 타인과 갈등이 없으면 그게 더 미스테리다. 싸우지 않는다면 문제가 없는 게 아니라 말하지 않고 참고 있거나 싸움을 회피하고 있을 가능성이 매우 높다. 자주 싸우고 사소한 걸로 싸우는 것 같다면 그만큼 서로에게 솔직한 것이고, 어떤 것이 서로 맞지 않는지 알아갈 수 있다는 것이며, 어떻게 싸우고, 어떻게 싸움을 넘어 관계를 성장시킬지 연습할 기회가 많다는 뜻일지도 모른다.

개발 단계에서 에러를 한번도 내보지 않은 개발자는 없다. 개발자들은 에러가 나면 주의깊게 에러메시지를 읽는(것이 권장된)다. 자바스크립트가 대충(?) 실행시켜주던 코드까지 에러를 내며 실행을 거부함으로써 문제가 커지기 전에 미리 더 나은 코드로 고칠 수밖에 없게 만드는 타입스크립트. 더 많은 에러메시지를 보기 위해 일부러 고생해서 그런 걸 만들어 쓰는 것처럼 우리에게도 더 많은 에러메시지가 필요하다. 우리의 몸과 마음이 보내는 에러메시지를 더 촘촘히 인식할 수 있으려면 에러(화, 우울, 무력감, 갈등, 싸움 기타 등등)를 겁내지 말고 나 자신을 살피며 어떤 신호들을 발견해가나는 것을 멈추지 말아야겠다.


'일상 > 2020~2022' 카테고리의 다른 글

변화  (0) 2022.08.29
  (0) 2022.07.13
나의 여행  (0) 2022.06.28