0. 환경 react-native : 0.70.6 react-native-call-log : 2.1.2 typescript : 4.8.3 macOS M1 1. 문제의 발생 react-native-call-log 라는 통화기록을 가져올 수 있는 react-native 패키지를 사용하다가 아래와 같은 에러를 만났다. https://github.com/wscodelabs/react-native-call-log 종종 보이던 에러라 TS용 패키지 추가로 설치하면 되겠다 싶어서 yarn add @type/react-native-call-log 를 했는데... 음... 암튼 TS용으로 만들어진게 없다는 말인거 같네요... (이거 TS 모듈을 만들어서 npm에 배포해보는 프로젝트도 할 일 큐에 넣어보겠습니다) 2. 구..
전체 글
중간평가 이후 최종발표까지 있었던 일에 대해서 회고하고 공유해보려합니다. 사실 소마 후기를 언제쯤 작성할까 고민하다가 우수자(인증자) 발표가 나면 써야겠다고 생각하고 있었는데, 마침 오늘 발표가 났고..! 13기 우수자로 선정되어서 속 시원하게 후기를 적어보려합니다. 8월 중간발표 중간발표는 8월말에 있었습니다. 사실 당시에 발표를 준비하면서, 다른팀에 비해서 뒤쳐진다는 생각을 많이 했던 것 같네요. 기획에 고민이 깊었던만큼 열심히 개발속도를 끌어올렸지만 중간발표 때까지는 빠르게 치고 나간 다른 팀들 사이에서 명함도 못 내밀 정도였지 않나... 중간발표에서도 전체적으로 주제에 대한 피드백이 많았던 것 같은데, 차라리 완성도나 비즈니스적인 해석이 문제라면 덜 문제였을텐데, 근본적인 프로젝트 주제에 대한 피..
지난번 필기 후기에 이어서 실기 후기를 남겨본다. https://pypystory.tistory.com/35 [후기] 정보처리산업기사 22년도 제3회 필기 합격 후기 22.07.05. 자격증 시험 후기를 남겨보려한다. 딱 열흘전에 '정보처리산업기사' 필기를 봤다. 군대갈 때(아마 내년...) 정보보호병 뿐만 아니라 SW개발병도 써보려고, 응시를 하게 되었다. 정말 보탬 1도 없이 pypystory.tistory.com 솔직히 이번달에 너무 바빠서 실기 책을 사놓고, 한참동안 방치해뒀다가 시험 이틀전부터 본격적으로 펼쳐봤다. 책을 안 사기에는 올해 기준 커리큘럼이 바뀌었는데, 인터넷에 돌아다니는 자료는 옛날것들 뿐이라 결국 샀다. 필기 때 봤던 책이랑 똑같은 출판사것으로 샀다. 소감부터 말하자면 꽤나 사길..
원래 갖고 있던 EC2에서 React로 만든 웹을 docker로 호스팅하고 있었다. 근데 새로운 웹을 하나 더 만들고 서브도메인으로 호스팅하고 싶었다. 앞에 Nginx 웹서버에서 들어오는 도메인에 맞춰서 포트를 나눠주면 잘 되지 않을까..?라고 생각했는데 2가지 문제에 부딪혔다. 사실 하나의 문제라고도 볼 수 있는데, 지금 쓰는 서버가 프리티어로 t2.micro라는 점이다. 첫번째로는 CPU가 못버텼다. build한 파일만 올려서 호스팅했으면 좀 달랐으려나 라는 생각이 있긴한데, 사이드 프로젝트에 build만 자동화해서 올리게 붙이기는 오버였고, npm install이나 start, build 과정이 너무 오래걸렸다. 두번째로는 처음에 EBS 용량을 8GB로 작게 설정해뒀더니 용량이 초과하는 이슈도 있었..
SSDC(Samsung Software Developer Conference) 2022, 삼성 소프트웨어 개발자 컨퍼런스에 참여한 후기를 남겨보려한다. 한달전쯤 우연히 SNS에 올라온 홍보물을 보게되었고, 무료로 선착순 오프라인 신청을 할 수 있었다. 컨퍼런스는 11월 15,16일 강남역 바로 앞에 삼성전자 서초사옥에서 진행되었다. 이틀 다 가고 싶었지만 이슈상.. 1일차만 방문하게 되었다. 행사시작은 10시부터였지만, 얼리버드 이벤트가 있어서 조금 일찍 도착하도록 출발했다. 출근길 2호선을 뚫고 납짝하게 되어서 도착할 수 있었다. 도착하니 배너가 건물 5층으로 안내했다. 행사장에 도착하니 꽤나 많은 사람들(진정한 얼리버드)이 와있었다. 사전등록을 했기에 이름만 말하니 참가자 목걸이와 기념품을 받을 수 ..
React로 사이드프로젝트를 하던 중 특정 변수에 대해 거의 모든 컴포넌트에서 참조를 하고 변경시 랜더링해줘야 하는 이슈가 생겼다. 개발 환경과 언어는 MacOS, React(v18.2.0), Typescript(v4.8.4), Redux(v4.2.0)이고, 배포는 docker로 묶어서 EC2에 띄울 예정이다. 그냥 App.tsx에서 useState로 State Hook 만들어서, 변수와 컨트롤러를 만들 수도 있었겠지만 depth가 커지는 컴포넌트가 생기면, 코드 가독성이 저해될 것 같았다.(사실 나만 보는 코드니까 상관은 없지만...) 그래서 상태 관리 라이브러리인 Redux를 사용해봤다. 이전에는 Redux가 react에 종속적인 라이브러리인줄 알았는데, 이번에 공부하며 찾아보니 JS를 위한 상태관리..
서론 현재 개발하고 있는 프로젝트에서 html 형태의 보고서를 만들고, 이메일로 유저에게 전송해야할 일이 생겼다. 기존의 코드에서는 nodejs에서 'nodemailer'를 사용하고, gmail을 통해서 전송하였다. 이때 생기는 문제점이 gmail 이라서 유저에게 신뢰성이 떨어질 수 있고, 별도의 DKIM 인증 등 스팸 메일로 분류되는 것을 피하기 위한 설정을 하지 않았기에 일부 메일이 스팸으로 분류되는 문제가 있었다. ( 물론 nodemailer에서도 이러한 기능을 지원한다 https://nodemailer.com/dkim/ ) 유저 뎁스가 깊어서 많이 사용하지 않던 기능이라 일단은 레거시로 놔두고 있었는데, 이번에 해당 부분을 개편하면서 아예 새로운 방법을 택했다. 현재 서비스에서 사용하고 있는 도메..
왜 쓰게 되었는가? 서비스를 분석하기 위해 유저의 활동 데이터를 수집해야 한다. frontend layer에서 firebase, mixpanel, airbridge 등의 다양한 툴을 붙여서 분석하고 있지만 전체적인 유저의 추세를 보기에는 간편하고, 시각화도 잘 해주지만 유저 한명한명을 타게팅해서 뭐하나 분석하기엔 어려움이 있었다. backend layer에서는 API를 호출할 때마다 로그를 기록하면되니, 로그만 잘 작성해둔다면 유저가 어디에서 머물고, 어떤 버튼을 클릭하고, 어디에서 이탈하는지 분석할 수 있을것이다. 원래는 어떻게 했는가? 원래도 logging 기능은 있었다. import logger from "../../utils/winston"; ... isUserPriorty: async (_, {..
Elasticsearch란 루씬(자바로 된 정보 검색 오픈소스)기반 검색 엔진이다. 역인덱스 방식으로 단어 단위로 나눠서 저장을 하여 검색속도를 높인다. 장점 : 검색속도 빠름 - 모든 행을 탐색해야하는 RDBMS 방식보다. 이미 단어가 어느 문장에 들어있는지 mapping 되어 있으니 훨씬 빠르다. 단점 : 수정, 삭제 속도 느림 - 단어별로 다 쪼개놨으니 삭제하려면 일일이 찾아서 삭제해줘야하는 낭비가 존재 -> 아 그러면 수정과 삭제가 빈번하지 않고, 검색을 자주하게 되는거에 쓰면 좋겠군 -> 로그 수집 및 분석 현재 진행중인 프로젝트에서 로그 정보 수집 및 분석을 위해 도입하고자 한다.(나중에 따로 자세히 적어보겠다) 설치 1. java 다운로드 https://www.java.com/en/downl..
내가 쓰고 있는 백엔드 기술에 대해 언어, 런타임, 프레임워크 자체에 대해서 조사하고 정리해보고자 한다. 언어 - JavaScript 역사 JavaScript(이하 JS)는 애초에 웹 브라우저를 위해 만들어진 언어다. 1990년대에 주된 브라우저였던 '넷스케이프'(지금은 파이어폭스로 승계되었다고 한다)를 만든 회사인 '넷스케이프 커뮤니케이션즈'에서 정적인 HTML을 동적으로 표현하기 위해 만든 언어이다. 이름이 'Java'Script인 이유는 애초에 만들때부터 만들게될 스크립트 언어가 자바를 구현할 것이고 비슷한 문법을 채용하고자 했다. 더불어 초기에는 LiveScript였으나 Java에서 파생되었다는 점과, 마케팅의 이유로 JavaScript가 되었다고 한다. ECMAScript ECMA(정보와 통신 ..