REST API와 설계원칙(1)

Intro 앞으로 REST API에 대한 내용으로 포스팅을 하려고 한다. REST API가 무엇이고, 나오게 된 배경 그리고 더 나아가 설계원칙에 대해서 다루고자 한다. 포스팅은 아래 도서(REST API Design Rulebook)를 참고하여 진행한다. 이번 포스팅에서는 REST API의 정의와 배경에 대해서 정리한다. 용어 정리 앞으로 자주 나오게 될 용어에 대해서 간단하게 정리한다. URI (The Uniform Resource Identifier) HTTP (The HyperText Transfer Protocol) HTML (HyperText Mark-up Language) API (Application Programming Interfaces) REST … 더 읽기

서비스 오픈 후 겪었던 OOM(OutOfMemory Error:Heap Space) 이슈와 해결과정

Intro 서비스 오픈을 앞두고 썼던 회고 글이 엊그제 같은데 거의 한 달이 다 되어 간다. 진짜 서비스 오픈 날인 2020년 7월 25일 전까지는 상용 서버 테스트만 했었다. 단순히 BackOffice 개발이었기 때문에 성능에 대해서 크게 고려를 하지 않았다. (왜냐면 사용자가 기껏해야 5명도 안될테니까 😹) 문제의 발생 (2020.07.30) 서비스 오픈 행사(2020.07.25)가 잘 마무리 되었고, 서비스에 이상이 없었다. … 더 읽기

서비스 오픈을 앞두고 쓰는 프로젝트 회고(‘마음을 담다 -목소리 찾기-‘)

(아래 회고는 2023년 8월 26일에 작성되었습니다.) 이제 곧 있으면, 2~3개월 동안 진행한 ‘마음을 담다 -목소리 찾기-‘ 프로젝트가 상용 오픈을 앞두고 있다. 물론 이 글을 쓰는 지금도 열심히 개발하고 있다. 오픈되고 나서부터 한 달 동안은 계속 잡고 있어야 할 듯하지만, 아쉬웠던 점을 위주로 회고를 하려고 한다. 내가 맡은 역할 이 프로젝트에는 사업 부서를 비롯해 여러 개발자들이 … 더 읽기

VSCode에 ESLint & Prettier 적용

1. VSCode Extension 설치 ESLint Prettier 2. 설정 커스터마이징 package.json … “eslintConfig”: { “extends”: [ “airbnb”, “prettier” ], “parser”: “babel-eslint”, “rules”: { “react/jsx-filename-extension”: 0, “import/no-named-as-default”: 0, “import/no-named-as-default-member”: 0, “import/no-unresolved”: 0, “import/prefer-default-export”: 0, “no-underscore-dangle”: 0, “no-console”: 0, “react/forbid-prop-types”: 0 }, “env”: { “browser”: true } }, 3. VSCode 설정 & Prettier 포매팅 설정 기본 Javascript 포매팅 … 더 읽기

[React] Redux의 설정과 reducer 작성법

참고로 제 프로젝트의 폴더 구조는 아래와 같습니다. 개념 위주로 포스팅을 하다보니, 생략한 부분이 어느정도 있습니다. 궁금한 점은 댓글 남겨주시면 답변 드리겠습니다. redux는 정의된 Action과 Reducer에 의해 구독하고 있는 컴포넌트에 state를 전달하게 된다. 1) store/modules/ 폴더에 파일 생성 or 만드려는 reducer와 관련된 파일에 작성 2) action type, action creator, initial state, reducer 작성 import { createAction, … 더 읽기

[React] Container(smart component) vs Component(dumb component)

참고로 제 프로젝트의 폴더 구조는 아래와 같습니다. 개념 위주로 포스팅을 하다보니, 생략한 부분이 어느정도 있습니다. 궁금한 점은 댓글 남겨주시면 답변 드리겠습니다. 이전 포스팅에서 잠깐 언급하기도 했고, 보통 폴더 구조에도 containers 폴더와 components 폴더로 나눈 게 된다. 각각의 개념과 역할에 대해서 알아보자. 그렇다.. 쉽게 말해서 container가 일은 다하고, component는 받아서 보여주기만 하는 역할을 한다…예제를 통해서 좀 … 더 읽기

[React] App 컴포넌트 마운팅 과정

참고로 제 프로젝트의 폴더 구조는 아래와 같습니다. 개념 위주로 포스팅을 하다보니, 생략한 부분이 어느정도 있습니다. 궁금한 점은 댓글 남겨주시면 답변 드리겠습니다. React의 실행순서는 Entry Point인 index.js → Root.js → App.js 순이다.여기서 index.js 안에 바로 App 컴포넌트를 붙이지 않은 이유는 Router와 Redux를 Root.js에서 연동하기 위함이다. Entry Point인 index.js에 Root 컴포넌트가 렌더링된다고 했을 때, Root.js부터 App.js에 서브 … 더 읽기

[React] Redux의 개념과 활용

1. Redux 개념 1) Redux의 필요성 리액트에서 상태를 더 효율적으로 관리하는 데 사용하는 상태 관리 라이브러리 위와 같이 컴포넌트가 구성되어있다고 가정하자. 만약, App 컴포넌트에서 데이터 상태(state)에 변화가 생겨서 state를 업데이트하면 App 컴포넌트가 리렌더링 되고,리액트 특성상 하위 컴포넌트도 모두 리렌더링 된다. 그렇기 때문에 TodoInput만 업데이트하길 원해도 TodoList도 함께 리렌더링 되는데, 이런 경우는 TodoList 컴포넌트에 shouldComponentUpdate를 구현하는 … 더 읽기

[JAVA] JDK 설치 및 환경변수 설정

JDK란?  자바 개발 키트(Java Development Kit)의 줄임말으로써 오라클에 의해 바이너리 제품으로 제공됩니다. 자바 플랫폼의 등장 이래 지금까지 가장 널리 사용되는 소프트웨어 개발 키트(SDK)이며, 자바를 사용하기 위해서는 기본적으로 JDK가 설치되어 있어야만 사용이 가능합니다. JDK 설치/다운로드  1. JDK 설치 링크 접속 2. 아래와 같은 화면이 나올텐데, Download 버튼을 클릭한다. 3. License를 동의한다는 버튼을 클릭하고, 자신의 OS 맞는 파일을 … 더 읽기