반응형

슬기로운 개발자생활 67

React HoC 고차 컴포넌트에 대한 이해 (예제 포함)

React에서 고차 컴포넌트(Higher-Order Component, HoC)는 컴포넌트를 인자로 받아 새로운 컴포넌트를 반환하는 함수입니다. HoC는 컴포넌트의 재사용성, 로직 공유, 상태 추상화, prop 조작 등에 유용합니다. HoC의 기본적인 구조는 다음과 같습니다: function withHoC(WrappedComponent) { // 반환되는 새로운 컴포넌트 return function(props) { // 추가 로직이나 상태를 이곳에 작성 // ... // WrappedComponent에 props를 전달 return ; }; } HoC 예제: 로딩 상태 관리 예를 들어, 여러 컴포넌트에서 공통적으로 사용되는 로딩 상태 관리 로직을 HoC를 사용하여 구현할 수 있습니다. 아래는 로딩 상태를..

[React] useEffect와 useMemo 차이

useEffect와 useMemo는 React의 훅(Hook)이지만, 사용 목적과 동작 방식이 서로 다릅니다. 차이점 요약 useEffect는 컴포넌트가 렌더링된 후에 실행되는 부수 효과를 다루는 데 사용됩니다. useMemo는 계산 비용이 높은 연산의 결과를 메모이제이션하여 성능을 최적화하는 데 사용됩니다. useEffect는 DOM 업데이트, 데이터 가져오기, 구독 설정과 같은 작업에 주로 사용됩니다. useMemo는 복잡한 계산이나 재계산을 피해야 하는 값의 계산에 주로 사용됩니다. 1. useEffect 목적: useEffect는 컴포넌트의 렌더링이 완료된 후에 부수 효과(side effects)를 수행하기 위해 사용됩니다. 부수 효과는 데이터 가져오기, 구독 설정, 수동으로 DOM 조작하는 것 ..

flex기반 CSS 스킬

정렬, 요소 배치, 등 웹 화면을 그릴 때 자주 사용하는 CSS 기법들을 정리해보았다. 순서 특정 요소 내 정가운데 정렬 화면 가운데 정렬 내부 요소 크기 조정 1. 특정 요소 내 정가운데 정렬 .flex-center{ display: flex; justify-content: center; align-items: center; } div 박스 내에 있는 요소를 정가운데에 정렬해야 할 경우 사용한다. 2. 화면 가운데 정렬 .screen-center { width: 100%; max-width: 393px; (screen-x 화면 최대 크기) height: 100%; display: flex; align-items: center; /* fixed center */ position: fixed; top: 5..

Prettier VSCODE에서 사용하기

Prettier는 코드 포매터로 저장 시 자동으로 코드를 깔끔하게 정리해주는 라이브러리이다. 이번에 프론트엔드 협업을 진행하면서 코드를 맞추기위해 Prettier를 사용해야했고, VScode에서 사용하는 법을 정리하려고 한다. prettier-vscode github Prettier (Code Formmater) doc 협업함에 있어 컨벤션을 정하는 것은 당연히 중요하지만 코드 가독성을 높이기 위해서 줄바꿈, 들여쓰기를 적절히 하는것도 중요하다. 본 글은 node로 생성한 프로젝트가 있다는 가정하에 진행한다. 순서 1. prettier 설치 2. prettier 설정 3. vscode 설정 1. prettier 설치 package.json이 들어가있는 Node 프로젝트라면 환경에 상관없이 사용가능 npm..

코딩 스타일 가이드

코딩 스타일 가이드는 2인 이상이라면 규모에 상관없이 정하고간다. 2인 팀의 소규모 프로젝트부터 기업과 같이 인원수가 많은 곳 어디든 스타일 가이드는 코드리뷰와 유지보수를 위해 중요하다. 주로 컨벤션이라고 함 스타일가이드 스타일 가이드의 기본적인 의미는 프로젝트를 시작할 때 최종 제품의 시각적 이미지 및 표현을 정의하고 디자인 및 개발 프로세스를 계획하는 데 사용하기 위한 것이다. 코딩 스타일 가이드는 코드의 표현을 정의하는 것이라고 볼 수 있다. 순서 1. 개발 언어 별 변수, 함수, 클래스 네이밍 규칙 2. git flow 3. IT 기업 스타일 가이드 4. 참고자료 1. 개발 언어 별 변수, 함수, 클래스 네이밍 규칙 파이썬 (Python) # variable snake_case = True # c..

Linux기반 OS (Ubuntu) 터미널 명령어 정리

기본적으로 Ubuntu나 Linux서버는 AWS에서 빌려서 사용하는 경우가 많고, 주된 사용 목적은 웹서버, crontab으로 돌리는 파이썬 프로그램이다. CLI (Command Line Interface) 명령어 인터페이스 = 터미널 순서 1. 경로 2. 파일 관리 3. vim editor 1. 경로 pwd : 현재 위치를 출력 cd : 경로 변경 ls : 현재 경로에 있는 파일, 경로목록 출력 ls -a : 숨김폴더까지 모두 출력 ls -l : 권한, 상세정보 출력 ls -al 2. 파일관리 mkdir : 폴더 생성 cp : 파일 복사 (잘 사용안하고 파이썬 파일로 코딩해서 씀) mv : 파일 이동 (마찬가지) rm : 삭제 (디렉토리 삭제 시 -r 옵션, -f 시 즉시 삭제) touch : 파일 생..

Screen 백그라운드에서 가상 터미널로 프로그램 실행하기 [Linux, Ubuntu]

가끔은 cron을 통한 잡 스케줄러보다, 특정 프로그램을 서버에서 계속해서 실행해야 하는 경우가 있다. 클라우드 서버에서 접속하면 생성되는 터미널은 기본적으로 접속을 끊는 순간 종료되기 때문에, 백그라운드에서 돌아가고 언제든 꺼내볼 수 있는 가상 터미널을 생성하는 screen 명령어가 굉장히 유용하다. Screen Linux기반 OS에서 독립적으로 동작하는 가상 터미널을 생성하는 소프트웨어 위키백과에서는 여러 가상 콘솔을 다중화하는데 쓰이는 응용 소프트웨어이자 터미널 다중화기라고 정의하고있다. 순서 1. 스크린 생성 2. 스크린 빠져나오기 3. 스크린 재접속 4. 스크린 확인 5. 스크린 종료 1. 스크린 생성 vscode 환경에서 접속했다 가정 screen options -S [스크린 이름] : 해당 ..

NCP 서버 접속 (in VS Code)

사이드 프로젝트를 진행하면서, 네이버 클라우드 플랫폼(NCP) 30만원 크레딧을 제공받는 김에 AWS 대신 NCP를 써보기로 했다. AWS EC2서버에 접속하는것과는 조금 다르고, 관련 레퍼런스도 많지 않아 설정하는데 조금 애먹었다. 설정하면서 느낀점은 디테일한 부분을 꼼꼼히 신경쓰는 네이버답게 보안이 잘 되어있다는 것과 내가 내 서버 접속하는것도 까다로운데 내 서버가 과연 해킹당할 수 있을까? 라는 생각도 들었다. 순서 1. 준비사항 2. VSCode Extension 설치 3. config 파일 수정 4. Trouble Shooting 1. 준비사항 NCP 서버 로그인 후 콘솔에 접속하면 좌측 메뉴바를 확인할 수 있다. 여기서 Region과 Platform에 따라 서버가 나뉜다. (생성한 서버가 안 ..

AWS EC2 서버 접속 (in VS Code)

가상의 컴퓨터를 하나 빌리는 것은 다양한 작업(자동화 프로그램, 간단한 FE, BE 배포)을 하는데 유용하다. CLI에서 접속해서 사용하는것보단 vscode같은 IDE툴을 활용하는 것이 생산성이 더 좋다고 생각한다. 서버 다양한 목적(컴퓨팅, DB, AI, ...)을 위해 컴퓨팅 자원을 구축하거나(자체서버) 빌려 사용(클라우드)하여 제공되는 것 순서 1. 준비사항 2. VSCode Extension 설치 3. config 파일 수정 4. Trouble Shooting 1. 준비사항 AWS EC2 EC2 서버는 생성시 기본적으로 보안 그룹에 ssh 접속을 위한 22번포트가 열려있음 ★★★★★ 키페어 파일인 pem 파일을 잘 관리할 것 pem파일을 주로 C:/Users/{USER_NAME}/aws 하위에 저..

Docker, Jenkins 활용 CI/CD 구축 (React, Kotlin+Spring) 3편 - 웹서버에 배포

Jenkins와 Github를 연동하여 푸시이벤트가 발생했을 시, Jenkins에서 빌드를 진행하는 것까지 설정을 해놓았으니, 이제 빌드 후에 일어날 작업들을 설정해두면 자동배포 설정이 끝난다.한 편 을 더 추가해야 할 것 같지만.. 2022년 마지막날에 끝내고 싶어서 다 합쳐버렸다. 뒤의 과정이 상당히 긺으로 천천히 따라오실 것을 추천..순서0.  전체 흐름1.  publish over ssh2.  react 빌드 후 파일 전송3.  Docker in Jenkins4.  spring 도커 빌드 후 도커 push5.  docker-compose로 백엔드 배포6.  Trouble Shotting nginx 설정0. 전체 흐름이번 프로젝트에서 구축한 CI/CD의 아키텍처1. publish over ssh다른..

반응형