본문 바로가기
728x90
반응형

source-code229

유튜브 댓글 감정 분석을 통한 주식 시장 파악 (1) 계기 이런 뉴스 기사를 봤다. https://biz.chosun.com/stock/stock_general/2023/08/16/7ZSOG4LH4RFBPIPTPL4Y4UYTZU/?utm_source=naver&utm_medium=original&utm_campaign=biz [인터뷰] “종목 추천 많으면 ‘꼭지’…투자기회, 역사에 답 있어” 인터뷰 종목 추천 많으면 꼭지투자기회, 역사에 답 있어 정광우 86번가 대표 투자의 역사는 반복돼 일본의 30년 시행착오가 한국엔 훌륭한 참고서 연준 입에 쏠린 눈하반기 금리인상 중단이 관전 biz.chosun.com “데이터 외적인 부분에서 본다면 주변인들의 반응에서 읽는다. 주식에 대한 이야기가 주변에서 많이 나오고 일반인들도 종목을 추천할 정도면 대체로 가격이 꼭.. 2023. 8. 20.
Singleton Pattern을 통한 axios 쿠키 허용 배경 Cookie를 통해 로그인을 구현하던 와중, 모든 api 요청에 공통된 옵션을 줘야 하는 상황이 생겼다. 정확히 말하자면... axios를 통해 브라우저의 HTTP 요청을 처리하고 있는데, 이때 쿠키를 사용할 경우 withCredentials 옵션을 true로 줘야 한다. → 일반적으로 브라우저는 CORS 정책에 따라 다른 도메인으로부터 온 요청에서는 쿠키와 같은 인증 정보를 보낼 수 없다. (동일 출처 간의 요청에 대해서만 인증 정보를 자동으로 전송) → withCredentials 옵션을 통해 브라우저가 해당 도메인 쿠키를 함께 보내도록 허용하는 것! 예를 들어 리뷰 생성 시 로그인한 사용자의 쿠키를 함께 보내기 위해서는 import axios, { AxiosResponse } from "axi.. 2023. 8. 20.
Template Method pattern 배경 결제 관련된 페이지를 만드는 도중 이런 상황과 마주했다. 결제(이하 멤버십)에는 세 가지 단계가 존재(베이식, 스탠다드, 프리미엄) 각 결제 단계마다 1) 해당 단계의 이미지 2) 해당 단계의 문구 3) 해당 단계 신청 api 가 존재 위와 같은 상황에서 베이직, 스탠다드, 프리미엄 멤버십 객체는 어떻게 구성되어야 할까? class Membership { } class Basic extends Membership { image = require('basic.png') description = '배이직 멤버십 입니다' apply() { // 베이직 멤버십 신청 함수 } } class Standard extends Membership { image = require('standard.png') desc.. 2023. 8. 20.
Postgresql date_trunc 함수를 통한 날짜별 조회 Postgresql DBMS를 사용하고 있다. id content created_at 0 abc 2023-07-25 07:27:17.407684+00 1 abc 2023-07-25 07:47:50.772492+00 2 ㄱㄴㄷ 2023-07-26 09:26:02.968429+00 3 ㄹㅁㅂ 2023-07-27 01:30:09.382792+00 다음과 같은 데이터가 존재하는 상황! 날짜별로 각 데이터가 몆 개 생성되었는지 조회해 달란 요구사항이 있었다. 일반적인 상황... 예를 들어 content별로 각 데이터가 몇 개 존재하는지 조회해야 했다면 SELECT content, count(*) FROM TABLE GROUP BY content group by를 통해 간단하게 조회할 수 있을 테다. 그런데 문제는.. 2023. 8. 20.
첫 실무 test code 작성 및 고민 2023-03-02 작성된 글입니다. import {describe, expect, it} from '@jest/globals' import convertToIndexGroup from './converToIndexGroup' describe('convert array to index group object', () => { describe('group by 4 item', () => { const ITEM_NUMBER_IN_EACH_ARRAY = 4 it('given length one array', () => { expect(convertToIndexGroup([{id: 0}], ITEM_NUMBER_IN_EACH_ARRAY)).toEqual( { 0: [{id: 0}], }, ) }) it('giv.. 2023. 8. 20.
클린 코드 나쁜 코드는 개발 속도를 크게 떨어뜨린다. (...) 코드를 고칠 때마다 엉뚱한 곳에서 문제가 생긴다. 간단한 변경은 없다. 매번 얽히고설킨 코드를 '해독'해서 얽히고설킨 코드를 더한다. (...) 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 여럿 개발자의 마음을 쿡쿡 찌르는 문구. 아마 모두가 겪어본 적이 있을 테다. 누군가가 작성한 코드를 수정하고, 문제가 터지고, 해독하고, 한참 시간이 걸리고, 수정하고, 문제가 터지고, 이해하고, 비슷한 엉망 코드를 얹고. 반복. 반복. 사실 최근 아키텍처, 테스트, 클린 코드에 관심을 가지는 것도 이러한 맥락에서다. 앱과 비슷한, 혹은 동일한 기능의 웹을 개발하는데... 앱에서 작성한 코드 중 활용할 수 있는 게 거의 없었다. 불과 6,7개월 전에 내가 작성한 .. 2023. 8. 20.
클린 아키텍처 1장 - 설계와 아키텍처란? 소프트웨어 아키텍처의 목표는 필요한 시스탬을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다. 비용은 최소화하고 생산성은 초대화할 수 있는 설계와 아키텍처를 가진 시스템을 만드려면, 이러한 결과로 이끌어 줄 시스템 아키텍처가 지닌 속성을 알고 있어야 한다. 2장 - 두 가지 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 '행위(behavior)'와 '구조(structure)' 란 두 가지 가치를 제공한다. ... 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서다. ... 이해관계자가 기능에 대한 생각을 바꾸면, 이러한 변경사항을 간단하고 쉽게 적용할 수 있어야 한다. 이러한 변경사항을 적용하는 데 드는 어려움은 변경되는 범위(.. 2023. 8. 20.
testing-library/react-native를 통한 컴포넌트 테스트 2 2023.08.18 - [source-code/FrontEnd] - testing-library/react를 통한 컴포넌트 테스트 (with RN + expo) 테스트 코드 작성 중 겪었던 에러 핸들링. 1. Jest를 통한 React-Query (useQuery) 테스트 현재 서비스에서는 server data 관리를 위해 react-query를 사용하고 있다. 테스트 대상 컴포넌트에서는 토글 on/off 데이터를 서버로부터 받아온 후, 해당 데이터에 맞는 UI를 그려주고 있었다. // useGetToggleStatus const useGetToggleStatus = (options) => useQuery(['key'], getToggleApi, options) // Page const Page = ().. 2023. 8. 18.
testing-library/react를 통한 컴포넌트 테스트 (with RN + expo) 2023.08.18 - [source-code/FrontEnd] - Jest를 통한 unit test Jest를 통한 unit test 테스트 코드. 초기 스타트업 개발자, 특히 프론트엔드 개발자들이 가장 놓치기 쉬운 요소가 아닐까. 왜? → 제품의 명확한 기능이나 디자인 시스템이 갖춰지지 않은 상태로 개발이 진행되는 경 23life.tistory.com Jest를 통해 특정 Class내 method가 의도대로 동작하는지에 대한 단위 테스트를 작성했었다. 하지만 (특히) 프론트엔드 개발자가 테스트하고 싶은 항목은 특정 상황에서 의도한 화면이 잘 뜨는지 사용자 액션 발생 (클릭, 타이핑, 스크롤 등) 시 의도대로 동작하는지 비동기 작업 발생 시 화면의 의도대로 표시되는지 와 같은, UI적 요소가 대부분일 .. 2023. 8. 18.
728x90
반응형