본문 바로가기

전체 글65

i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(3) - 자동화 적용하기 (최종) 어쩌다보니 3편까지 작성하게 된 자동화 도입기지난 글에서는 i18next를 적용하는 것까지 작성했었고, 이번에는 본격적으로 자동화를 도입한 방법을 소개하려고 한다.참고자료를 기반으로 코드를 작성하였으며, 프로젝트에 맞게 추가/변경하여 사용하였다 2024.09.18 - [React] - i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(1) - intro/도구 선정 i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(1) - intro/도구 선정도입기라고 하기엔 별거 없지만,다른 블로그 글과 달라진 부분도 있고,나중에 또 적용해야 할 나를 위해 써보는 도입기! (1)을 붙인 건 더 업데이트해야 할 부분이 많기도 하고,한번에.. 2024. 11. 10.
i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(2) - i18next적용하기(namespace 구분하기) 지난 글에서는 i18n 자동화 도입 배경과 사용 도구 및 도구 선정 배경에 대해 살펴보았다.2024.09.18 - [React] - i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(1) - intro/도구 선정 이번에는 적용한 방법에 대해 소개하려고 한다.그중 먼저 i18next를 적용한 방법을 먼저 소개하겠다.또한, namespace를 구분할 필요가 있어서 이를 구분한 방법도 소개하도록 하겠다.(단, 코드는 보안상 실제 코드가 아닌 주로 공식 문서의 코드를 일부 수정하여 사용하였습니다)  i18next 적용하기먼저 i18next를 사용해서 국제화를 적용했다. i18next의 t 함수를 사용하면, key를 통해 번역 내용을 관리할 수 있다.// 예시{t('ke.. 2024. 10. 27.
[글또 10기 다짐글] 글또 10기, 무엇을 어떻게 채울 것인가 (feat. 강점검사) 얼마 전 지원했던 개발자 글쓰기 모임인 '글또 10기'에 합격했다.지원글인 '삶의 지도'를 블로그에 공개하고 떨어지면 지우고 싶어질 수도 있겠다 싶었는데, 다행히도 그 글도 살아남게 되었다. 첫 글을 무엇으로 써야 할지 고민했었는데, 다행히도 OT때 첫 글로 다짐글을 써도 좋다는 이야기를 듣고 일단 다짐글로 글또를 시작해 보려 한다. OT 후기OT에서 생각보다 다양한 이야기를 해주셨다. 글또 필수 활동 내용을 설명하는 것에서 그치는 것이 아니라, 글또를 시작하게 된 계기, 메타인지 등에 대해서부터 얘기해주셔서 왜 글또여야 하는지에 대해 공감하게 되었고, 어떻게 이곳을 활용하면 좋을지에 대해 고민해 볼 수 있는 시간이었다. 강점 검사를 통해 돌아본 나OT에서 성윤님이 갤럽의 강점검사를 활용하신 것을 보여주.. 2024. 10. 12.
[책리뷰] 컴퓨터 구조와 운영체제 핵심 노트 (서지영, 길벗) - 비전공자 CS 입문서 추천! 컴퓨터 원리에 대해 이해하고 싶지만, 무엇부터 해야할지 모르겠는 비전공자에게 길라잡이 같은 책 비전공자 출신의 개발자로 일하면서 항상 CS에 대한 갈증이 있었다. 하지만, CS를 잘 아는것과 리액트로 기능 구현을 잘 하는 것은 다른 문제였기에 늘, 우선순위에서 CS 공부는 밀려났다. 그러나 어떤 분야를 하던지 기본 동작 원리를 이해하고 진행하는 것을 좋아하는 성향탓도 있고, 업무를 할 때 종종 다른 분들이 쓰시는 용어가 뭔지 몰라서 찾아봐야 하는 순간들도 있었기에 점점 더 CS를 넓게 훑어라도 보고 싶다는 마음이 강했다. 그러나 망망대해 같이 넓고 끊임없이 새로운 것이 나오는 컴퓨터/개발 지식의 홍수 시대에서 도대체 뭘 봐야할지, 어떤것부터 어느만큼 봐야할지 감이 오지 않았다. 컴퓨터가 도대체 어떻게 동.. 2024. 9. 30.
[글또 10기 지원하기] 삶의 지도 작성 글또 10기를 지원하려고 봤더니 삶의 지도를 작성하라고 했다.이걸 어떻게 쓰지 싶기도 하고, 너무 내 얘기를 자세히 쓰나 싶기도 하다가도 쓰고 보니 나름 의미가 있어서 결국 블로그에 올린다.사실 마감시간 직전이라 좀 더 잘 쓰고 싶었는데, 여기에서 마무리 해서 아쉽다. 칭찬받는 걸 좋아하고 혼나는 건 싫어했던 K-장녀? 미루기는 좋아하는데 본인에게 지는 건 싫어했던 사람내 또래 중엔 흔치 않은 삼남매의 장녀로 자랐다. 어린 장녀에게 엄마는 엄하셨다. 그래서인지 칭찬받고 싶고, 혼나긴 싫어서 뭔갈 잘 해내려고 했던 게 많았던 거 같다고 생각했었다. 그래서 그렇게 엄마말 잘 듣는 착한 K-장녀로 자랐고, 그래서인지 성적도 나쁘지 않았다.그런데 알고 보니 스스로에게 지는 걸 싫어했던 것도 큰 것 같다. 사실 .. 2024. 9. 22.
i18next-react와 Google Sheets를 활용한 국제화(i18n) 자동화 도입기(1) - intro/도구 선정 도입기라고 하기엔 별거 없지만,다른 블로그 글과 달라진 부분도 있고,나중에 또 적용해야 할 나를 위해 써보는 도입기! (1)을 붙인 건 더 업데이트해야 할 부분이 많기도 하고,한번에 다 쓰려고 하다보니 자꾸 미뤄져서 잘라서 써야겠단 생각이 들었다ㅎㅎ(메인 업무가 아니여서 틈틈이 조금은 더디게 진행된단 점도 있고ㅎㅎ)  배경 및 문제인식회사의 서비스가 글로벌 시장 진출을 준비하면서 국제화(internationalization, i18n)를 준비하게 되었다.국제화에는 여러 지원이 포함되지만, 가장 우선시해야 하는 것 중 하나인 언어 대응을 준비하게 되었는데, 기존 방식이 비효율적이고 생산성이 떨어지는 방식으로 되어있었다. 즉, 아래와 같은 문제점들을 도출하였고 이를 개선할 수 있는 방안을 고안하게 되었다... 2024. 9. 18.
새해가 2주나 지나고서야 쓰는 2023 회고 및 새해 계획 회고를 쓰기위해 23 하반기 회고를 다시 보니 그때도 7월이 2주지나고 회고를 썼다. (한결같군..ㅎㅎ) 2024에는 갓생을 살아야지! 라는 생각으로 시작하는 2023 회고! 1. 결산 (지난 회고때의 계획 및 작년 전체) 지난 회고때 위와 같은 계획을 세웠었고, 아래의 표로 결산을 해본다. 성과는 별 세개를 만점으로 작성했다. 계획 성과 (만점: ★★★) 상세 내용 및 회고 매일 코테 공부 ★ 코테 공부를 하긴 했는데 자주 하진 못했기에 2점을 줬다. 혹자는 코테를 요즘 많이 안보는 추세이니 아예 포기하라고도 했었는데 회사 규모와 상관없이 코테가 있는 곳이 그래도 간간히 있었기에 아예 포기할 순 없었다. 아주 아주 약간 늘긴했지만, 쉬운 문제만 풀수 있고, 어려운 문제는 아직도 너무 너무 어렵다. 투두.. 2024. 1. 13.
[코드트리 챌린지] 8주차 - DFS / 안전 지대 (JS) 1. 진단 결과 2. 학습 내용 문제 https://www.codetree.ai/missions/2/problems/comfort-zone?&utm_source=clipboard&utm_medium=text 나의 풀이 (JS) const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\n"); const [n, m] = input.shift().split(" ").map(Number); input = input.map((e) => e.split(" ").map(Num.. 2023. 10. 30.
[코드트리 챌린지] 7주차 - BFS 탐색 / 돌 잘 치우기 (JS) 1. 진단 결과 2. 학습 내용 문제 https://www.codetree.ai/missions/2/problems/clear-stones-well?&utm_source=clipboard&utm_medium=text 나의 풀이 (JS) const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\n"); const [n, k, m] = input.shift().split(" ").map(Number); const grid = input.slice(0, n).map((e.. 2023. 10. 23.