면접 준비를 한참 하는 중 '객체지향'이라는 주제로 질문을 많이 받았다. 본격적으로 개발을 공부할 때도 어려웠던 클래스와 객체지향의 개념. 이제는 어느정도 이해했다고 할 수 있을까? 내가 이해한 것을 바탕으로 간단한 게임형식의 코드를 작성해보았다.이 로직은 게임의 시작
나는 개인적으로 예전부터 테스트코드가 상당히 난이도가 있는 파트라고 생각했다.테스트코드를 작성하는 문법, 라이브러리와 프레임워크를 다루는 방법 등이 어려운게 아니다.어떤 함수를 어떠한 케이스로, 어떻게 시나리오를 작성해서 테스트를 할지. 이 로직을 머릿속으로 생각하고
7월에들어서 나는 소스코드 배포를 위해 aws의 서비스들을 이용해 배포를 시도했다. 회사에서 github actions로 cd를 구현했을 때는 도커를 이용했는데 다음과 같은 순서로 진행했다. 도커를 이용한 배포 github actions의 머신환경 안에서 npm in
오늘은 필터에 따라 비디오의 리스트를 출력하는 기능을 만들었다. 정확히 말하면 비디오를 출력하는 기능은 내일로 미루었다. 생각보다 필터를 설정하는 부분이 까다로웠기 때문이다.나는 필터 객체를 만들고 이 객체안의 값이 변할때마다 VideoList에 필터 정보를 보내 백엔
쿼리를 작성하는건 항상 생각하게된다. 아무랩스의 회사에서 배운점은 SQL 쿼리를 작성할 때 정말 필요한 JOIN, WHERE등의 조건을 걸어야 한다는 것이다.예를 들어 title에서 특정 키워드로 검색을 한다면 매개변수가 ""로 들어왔을 때, WHERE title LI
물어볼게 있어.user 테이블과 content테이블이 있고, 이 둘을 다대다 관계로 이어주는 userContent 테이블이 있다고 가정할게.나는 userId와 contentId를 이용해 userContent에서 같은 userId와 contentId를 가지는 데이터를 찾
오늘(이번 주말)은 Nav에서 키워드를 입력하면 백엔드로 요청을 보내 키워드를 출력하는 기능을 만들었다.이 기능을 작성할 때 까다로웠던 점은 리랜더링이라는 개념이였다.리액트 컴포넌트의 상태나 속성이 변경되었을 때, 해당 컴포넌트가 업데이트되고 다시 렌더링되는 과정가상
생각보다 유튜브에서 제공하는 api의 하루 할당량이 부족했다.기본적으로 10000을 제공하는데 이는 요청의 수가 아니고 어떤 방식으로 요청을 하냐에 따라 숫자가 변하는 일종의 포인트 시스템이다.내가 생각했던 것은 사용자에게 키워드를 받아 유저들에게 그 키워드에 대한 영
오늘은 nestjs로 백엔드 작업을 진행했다. 나의 키워드를 저장하는 테이블은 위와 같다.사용자가 keyword를 입력하면 keyword테이블에 데이터를 저장하고, keywordUser테이블에 유저의 아이디와 키워드의 아이디를 삽입해 user테이블과 연결시키는 구조이다
나는 그 어떤 문서, 프로그래밍 언어 모든 작업을 생각해봐도 css가 가장 어려웠던 것 같다.워낙에 백엔드 체질이라고 나를 생각하기 때문일까, 디자인 감각이 없다고 생각하기 때문일까. 무조건 어렵게 생각했던 것 같다. 하지만 오늘 flexBox를 사용하는 방법을 접하게
https://velog.io/@shin6403/React-Typescript-%EC%A0%88%EB%8C%80%EA%B2%BD%EB%A1%9C-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0feat.React-CRA타입스크립트를 사용하면 절
구글은 생각보다 소셜로그인 구현이 쉽게 되어있다. Inpa Dev님의 패스포트사실, passport만 이해하면 웬만한 소셜로그인의 구동 방식은 비슷하기 때문에 하나만 성공해도 다른 소셜까지 구현 가능해진다.사실 어렵게 생각할 것 없이 다음과 같은 순서를 따른다.1\.
함수형 프로그래밍은 선언형 패러다임의 일종자연수로 이루어진 배열에서 최댓값을 찾으라고 한다면?여기서 reduce()는 배열만 받아서 누적한 결괏값을 반환하는 순수 함수!함수형 프로그래밍은 위와 같이 순수 함수들을 블록처럼 쌓아 로직을 구현하고 ‘고차함수’를 통해 재사용
애플리케이션의 구성 요소를 세 가지 역할로 구분하고 개발 프로세스에서 각각의 구성 요소에만 집중해 개발하는 패턴재사용성과 확장성에 용이함!하지만 애플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해짐.애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻함.inpu
이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴서로 다른 구조인 set과 map임에도 똑같은 for a of b라는 이터레이터 프로토콜을 통해 순회하는 것을 볼 수 있음.이터러블한 객체들을 순회할 때 쓰이는 규칙반복 가능한 객체로 배열을 일반화한 객체실무에
프록시 패턴은 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 패텅.서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속 할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램.nginx
전략 패턴은 정책 패턴이라고도 함.객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하는게 아니라 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴.이와 같이 사용하는데 passport.use()라는 메소드 안에 ‘전략’(여기
전략 패턴은 정책 패턴이라고도 함.객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하는게 아니라 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴.이와 같이 사용하는데 passport.use()라는 메소드 안에 ‘전략’(여기
객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴, 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 대한 구체적인 내용을 결정하는 패턴상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결함.객체 생성
하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴.만들어진 인스턴스로 로직을 만들고 데이터베이스 연결 모듈에 많이 사용됨.하나의 인스턴스를 만들어 놓고 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 사용하는 비용이 거의 없음.하지만 의존성이 높아짐.서버