# common

69개의 포스트

[node.js] 상용서버와 개발서버의 서로 다른 ip를 구별할 수 있도록 하기

상용서버와 개발서버 보통 프로젝트를 하다보면 상용서버와 개발서버가 나누어진 것이 보통이다. 기존 프로젝트의 코드리딩을 하던 중 url을 사용해야 하는 api들에서 상용서버에 반영할때와 개발서버에 반영할때 하드코딩된 ip를 사용하고 있다는 것을 발견했다. 기존 프로젝트는 git을 통해 서버에 올릴때마다 하드코딩된 url의 ip 주소를 변경해주고 있었다. 하드코딩된 것을 동적으로 바꾸기 위해 현재 서버의 ip를 받아올 수 있도록 했다. 해결법 이렇게 현재 서버의 ip를 받아온 후 이러한 형식으로 변경하여 번거로운 작업을 줄였다. 최종 사용법 더 좋은 방법이 있으면 알려주세요 😊

6일 전
·
0개의 댓글
·

CBD (Component-Based Development)이란?

CBD는 소프트웨어 개발 방법론 중 하나로, 소프트웨어를 작은 독립적인 구성 요소 또는 컴포넌트로 분할하고, 이러한 컴포넌트들을 조합하여 소프트웨어를 개발하는 방식입니다. 컴포넌트 소프트웨어를 구성하는 작은 모듈 또는 부분을 컴포넌트라고 합니다. 이 컴포넌트는 특정 기능을 수행하거나 데이터를 처리하는 역할을 합니다. 예를 들어, 로그인 기능, 데이터베이스 연동, 사용자 인터페이스 등이 각각 하나의 컴포넌트가 될 수 있습니다. 재사용성 각 컴포넌트는 재사용 가능하도록 설계되며, 이를 통해 비슷한 기능을 하는 다른 소프트웨어 프로젝트에서도 재활용할 수 있습니다. 즉, 비슷한 요구사항을 가진 프로젝트에서 동일한 컴포넌트를 다시 개발할 필요가 없습니다. 조합 컴포넌트들은 조합하여 완전한 소프트웨어 애플리케이션을 만듭니다. 이때 필요한 컴포넌트들을 선택하고 조립하여 원하는 기능을 가진 애플리케이션을 생성합니다. 유지보수

2023년 9월 14일
·
0개의 댓글
·

포트 포워딩이란?

포트 포워딩은 외부 아이피의 포트번호와 내부 아이피의포트번호를 연결해주는 기능입니다. 포트 포워딩은 인터넷에서 들어오는 특정한 포트의 데이터를 내부 네트워크의 특정한 컴퓨터 또는 서버로 전달하는 것입니다. 다시 말하면, 호텔(컴퓨터)에 해당 네트워크가 들어오면 내가 포트포워딩해 놓은 방(포트넘버)까지 해당 네트워크를 보내는 개념입니다. 포트 포워딩은 외부에서 들어오는 네트워크 트래픽을 특정 내부 네트워크 기기로 전달하는 과정입니다. 이를 통해 외부에서 내부 서버로의 접근이 가능하게 됩니다.

2023년 9월 14일
·
0개의 댓글
·

물리적 보안, 관리적 보안 및 시큐어 코딩이란?

물리적 보안 (Physical Security) 물리적 보안은 물리적인 장치, 시설 및 자산을 보호하는 데 중점을 둡니다. 이것은 건물, 서버 룸, 데이터 센터, 컴퓨터 하드웨어 및 기타 물리적 자산에 대한 접근 제한 및 보호를 포함합니다. 예를 들어, 출입 제어 시스템, CCTV, 잠금 장치, 생체 인식 시스템 등이 물리적 보안을 구현하는 데 사용됩니다. 방화벽, 네트워크보안, 서버보안 이런것들도 다 물리적 보안이라고 생각하면된다. 관리적 보안 (Administrative Security) 관리적 보안은 조직 내에서 정책, 절차 및 규정을 통해 정보 보안을 관리하고 유지하는 것을 의미합니다. 이것은 사용자 교육 및 훈련, 엑세스 제어 정책, 비상 대비 계획, 보안 감사 및 감시를 포함합니다. 예를 들어, 직원에게 암호 복잡성 규칙을 따르도록 교육하는 것이 관리적 보안의 한 예입니다. 시큐어 코딩 (Sec

2023년 9월 14일
·
0개의 댓글
·

게이트웨이(Gateway)란?

네트워크에서 중요한 역할을 하는 장치나 시스템을 가리키며, 다른 네트워크와 통신하도록 도와주는 역할을 합니다. 게이트웨이는 다양한 네트워크 프로토콜을 연결하고, 데이터 패킷을 라우팅하고, 데이터의 형식을 변환하는 등의 작업을 수행합니다. 서로 다른 네트워크 상에서 연결되려면 동일한 통신 프로토콜을 사용해야 합니다. 따라서 프로토콜이 다른 네트워크 상의 컴퓨터와 통신하려면 두 프로토콜을 적절히 변환해 주는 변환기가 필요한데, 게이트웨이가 바로 이러한 변환기 역할을 합니다. 예를 들어, 한국인과 미국인 사이에 원활한 의사소통을 위해 통역사를 두는 것과 동일합니다.

2023년 9월 14일
·
0개의 댓글
·

클라우드란?

클라우드 컴퓨팅은 인터넷을 통해 컴퓨터 자원(서버, 스토리지, 데이터베이스, 소프트웨어, 네트워크 등)을 제공하고 사용하는 기술입니다. 즉, 클라우드 컴퓨팅은 인터넷을 통해 컴퓨터 자원을 빌려서 사용하는 기술로, 비용 절감, 확장성, 효율성, 보안 및 편리한 액세스와 같은 이점을 제공합니다. 이것은 기업과 개인 모두에게 다양한 서비스 및 리소스를 제공하는 중요한 기술입니다. 자원 공유 클라우드 컴퓨팅은 여러 사용자나 기업이 하나의 물리적 서버나 자원을 함께 사용할 수 있는 방식입니다. 이것은 효율성을 높이고 비용을 절감하는 데 도움이 됩니다. 예를 들어, 여러 기업이 하나의 서버를 공유하고 각자 필요한 만큼의 컴퓨팅 파워를 사용할 수 있습니다. 확장성 클라우드는 필요에 따라 컴퓨팅 자원을 쉽게 확장할 수 있는 유연성을 제공합니다. 즉, 기업이나 개인이 더 많은 컴퓨팅 자원이 필요한 경우, 클라우드 서비스 제공 업체에 의해 신속

2023년 9월 14일
·
0개의 댓글
·

DevOps (develope opearations)란?

과거에는 개발과 운영이 별개의 단계로 진행되어 개발 후 문제 발생 시 다시 개발팀에 돌아가는 번거로운 과정이 있었습니다. 이로 인해 서비스를 고객에게 전달하는 데 많은 시간이 소요되고 효율성이 떨어졌습니다. 그러나 시간이 지나면서 고객 가치를 빠르게 전달하고 개선하는 것이 기업의 생존과 직결된 중요한 과제가 되었습니다. 데브옵스는 서비스를 빠르게 개발하고 운영 배포를 효율적이고 빠르게 지속적으로 진행하는 개념입니다. 데브옵스는 개발, 테스트, 배포, 운영 단계를 자동화된 하나의 프로세스로 통합하여 사용합니다. 이로써 시간을 절약하고 실수를 예방하며, 서비스의 일관성을 유지할 수 있습니다. 이는 고객에게 빠르게 가치 있는 서비스를 제공하고, 기업의 경쟁력을 유지하고 향상시키는 데 큰 도움이 됩니다.

2023년 9월 14일
·
0개의 댓글
·

Jenkins란?

Jenkins는 지속적 통합 (Continuous Integration, CI) 및 지속적 배포 (Continuous Deployment, CD)를 구현하기 위해 널리 사용되는 오픈 소스 자동화 도구 중 하나입니다.

2023년 9월 14일
·
0개의 댓글
·

모놀리딕 아키텍쳐란?

모놀리딕 아키텍처는 각 서비스들이 강하게 결합되어 하나의 전체 시스템을 이루는 구조를 가리킵니다. 장점 구조가 단순하여 개발이 비교적 간단합니다. 흐름과 단계가 명확하게 설계되어 데이터 정합성을 쉽게 유지할 수 있습니다. 단점 서비스의 규모가 커질수록 단점이 더 두드러집니다. 여러 기능이 추가되면 소스코드가 복잡해져 초기 개발자가 아니면 이해하기 어렵습니다. 새로운 기능을 추가하려면 소스코드를 이해하는 시간이 오래 걸리며, 개발 속도가 점차 느려질 수 있습니다. 테스트 시간이 초기에는 빠르지만 기능이 많아질수록 체크해야 할 부분이 늘어나게 됩니다. 새로운 기능을 추가하더라도 기존 코드가 동작하는 환경을 유지해야하기 때문에 적용이 어려울 수 있습니다. 모놀리딕 아키텍처는 초기에는 간단하고 흐름이 명확하여 빠른 개발이 가능하지만, 시스템 규모가 커지면서 복잡성과 유지보수 어려움이 더해집니다. 새

2023년 9월 14일
·
0개의 댓글
·

MSA(MicroService Architecture)란?

마이크로서비스 아키텍처(Microservices Architecture, MSA)는 애플리케이션을 느슨하게 결합된 서비스의 모음으로 구조화하는 소프트웨어 아키텍처 스타일입니다. 이를 통해 향후 서비스 확장을 고려한 설계가 가능합니다. MSA의 특징 전체 시스템을 작은 서비스 단위로 분리합니다. 각 서비스는 독립적으로 개발되어 운영됩니다. 한 서비스의 장애가 전체 시스템에 영향을 미치지 않습니다. 새로운 기술을 적용하고자 할 때 각각의 서비스에 쉽게 적용 가능합니다. 장점 유지보수가 용이하며, 특정 기능을 개선하거나 수정할 때 해당 서비스만 업데이트할 수 있습니다. 시스템의 유연성이 높아져 실시간으로 요구사항을 반영할 수 있습니다. 기능이 많은 빅테크 기업들이 유연성과 확장성을 위해 MSA를 선택하는 경향이 있습니다. 단점 마이크로서비스 개발은 일반 개발보다 복잡하며, 각

2023년 9월 14일
·
0개의 댓글
·

ITSM (IT Service Management)이란?

IT 서비스 관리 줄여서 ITSM이라고 부릅니다. IT 시스템 자체보다는 고객의 요구사항과 고객을 위한 IT 서비스에 중점을 둡니다. 서비스들을 계획, 설계, 전달, 운영하기 위해, 단체에 의해 수행되는 활동 전반을 의미합니다.

2023년 9월 14일
·
0개의 댓글
·

Fit/Gap (Fit-Gap Analysis) 분석이란?

요구사항(to-be)과 현재 상태(as-is) 간의 Fit(적합성)와 Gap(차이)를 비교하여 요구사항의 우선순위 등을 설정하는 방법론입니다.

2023년 9월 14일
·
0개의 댓글
·

미들웨어란?

미들웨어는 서로 다른 애플리케이션이 서로 통신하는 데 사용되는 소프트웨어입니다. 미들웨어는 소프트웨어 시스템의 각 컴포넌트간의 효과적인 통신을 도와주는 역할을 한다는 것을 이해할 수 있습니다. 미들웨어는 다양한 시스템, 서비스 또는 컴포넌트 간에 데이터 교환, 보안, 트랜잭션 관리 등을 처리하는 데 사용됩니다. 이러한 중간 계층은 시스템의 확장성, 상호 운용성 및 유지 보수성을 향상시키는 데 기여합니다.

2023년 9월 14일
·
0개의 댓글
·

도메인주도설계(DDD)이란?

DDD(Domain Driven Design)은 소프트웨어를 개발할 때 도메인(업무 영역)을 중심으로 엔티티를 설계하는 개발 방법론입니다. 도메인을 하나의 객체로 보고, 객체지향적으로 도메인을 설계한다는 것을 의미합니다. 엔티티는 도메인의 핵심 개념이며, 이를 통해 비즈니스 로직을 표현합니다. 엔티티는 도메인에서 발생하는 주요 객체들을 나타냅니다. DDD는 소프트웨어 개발 과정에서 도메인(업무 영역)을 중심으로 설계하는 접근 방식을 강조합니다. 도메인 주도 설계란 객체가 가져야 할 데이터에 초점을 두고 설계를 하는 방식이다. 도메인 주도 설계는 복잡한 소프트웨어 시스템을 보다 이해하기 쉽고 유지보수 가능한 형태로 구축하기 위한 방법론으로, 도메인의 복잡성을 이해하고 이를 코드로 옮기는 과정을 중요하게 생각합니다. 이를 통해 개발자와 도메인 전문가 간의 협업을 강화하고, 비즈니스 문제를 해결하기 위한 효과적인 소프트웨어를 개발하는 데 도움이 됩니다.

2023년 9월 14일
·
0개의 댓글
·

테스트주도개발(TDD)이란?

테스트 주도 개발(TDD, Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 프로그래밍을 할 때 테스트를 먼저 작성하고, 그 테스트를 통과시키는 코드를 작성하는 방식을 의미합니다. 테스트 작성 -> 코드 작성 -> 리팩터링 이러한 세 단계를 계속 반복합니다. 즉, 새로운 기능을 추가하거나 기존 기능을 변경할 때마다 먼저 해당 기능을 검증할 테스트를 작성하고, 그 다음에 코드를 작성하며, 마지막으로 리팩터링을 수행합니다. TDD의 장점 버그를 초기에 발견하고 수정하기 쉽습니다. 코드의 신뢰성이 향상됩니다. 테스트 케이스를 잊지 않고 잘 만들수 있습니다. 코드구현을 먼저하게 되면 코드에 따라 테스트케이스를 만들기때문에 유연한 테스트케이스를 만들수 없습니다. TDD는 코드 품질을 향상시키고 개발

2023년 9월 14일
·
0개의 댓글
·

애자일 방법론이란?

일정한 주기를 가지고 빠르게 제품을 출시하여 고객의 요구사항, 변화된 환경에 맞게 요구를 더 하고 수정해나가는 탄력적인 방법론입니다. 전통적인 방법 (폭포수 방법론) 집을 지을 때, 먼저 모든 설계를 완벽하게 마치고 계획을 수립합니다. 이 계획에는 모든 세부 사항, 재료 목록, 비용 예산, 작업 일정 등이 포함됩니다. 계획을 마친 후에야 실제로 공사에 착수하며, 한 번에 모든 공정을 마칩니다. 미리 계획한 대로 진행됩니다. 만약 계획에 문제가 발생하거나 변경이 필요하면, 추가 작업 및 비용이 발생하며 시간이 소요됩니다. 애자일 방법론 집을 지을 때, 먼저 간단한 기획을 시작합니다. 기본적인 아이디어와 요구 사항을 정하고, 작은 부분을 고려합니다. 그런 다음, 이 작은 부분을 조금씩 건설하면서 주기적으로 검토하고 피드백을 받습니다. 집을 짓는 동안 필요한 변경 사항이나 개선 사항이 있으면 즉시 반영할 수 있습니다. 이런 반복 주기를

2023년 9월 14일
·
0개의 댓글
·

AWS(Amazon Web Service) 란?

서버, 네트워크 등 인프라 전체를 빌려주는 서비스입니다. 다양한 서비스를 제공하고 있어서 AWS가 제공하는 서비스 만으로 필요한 기능을 대부분 구축 가능합니다.

2023년 9월 14일
·
0개의 댓글
·

React, Vue, Angular 란?

React, Vue, 그리고 Angular는 모두 웹 프론트엔드 개발을 위한 자바스크립트 라이브러리나 프레임워크입니다. React 페이스북에서 개발 - React는 페이스북에서 개발된 라이브러리입니다. 컴포넌트 기반 - React는 컴포넌트 기반 아키텍처를 사용하며, UI를 작은 단위로 나누어 개발합니다. 각 컴포넌트는 독립적으로 동작하며 재사용 가능합니다. JSX 문법 - 자바스크립트안에 HTML태그를 사용합니다. 단방향 데이터 흐름 - 데이터는 부모 컴포넌트에서 자식 컴포넌트로만 전달됩니다. Vue 점진적인 프레임워크 - 기존 프로젝트에 점진적으로 도입하기 쉽습니다. 기존의 웹 페이지에도 빠르게 적용할 수 있습니다. 컴포넌트 기반 - React와 마찬가지로 컴포넌트 기반 아키텍처를 사용하며, 재사용성이 뛰어납니다. 양방향 데이터 바인딩 - 데이터가 변할 때 화면이 자동으로 업데이트됩니다. Angular 구글에서

2023년 9월 14일
·
0개의 댓글
·

HTTPS란?

암호화 프로토콜을 사용하여 HTTP 통신을 안전하게 하는 프로토콜입니다. HTTPS는 HTTP에 보안에 문제가 있어서 사용하게되었습니다. 이 문제들(도청,위장,변조)을 보완하기 위해서 생겨난것이 HTTPS이고 HTTPS는 암호화 프로토콜을 사용하여 HTTP 통신을 안전하게 하는 프로토콜입니다.

2023년 9월 14일
·
0개의 댓글
·

HTTP(Hyper Text Transfer Protocol)?

HTTP이란 데이터를 주고 받기 위한 프로토콜입니다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청과 응답을 하는 프로토콜입니다. 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 됩니다. 장점 - 통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단합니다. 단점 - 이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 합니다. 이를 해결하기 위해 쿠키(cookie)나 세션(session)을 사용해서 데이터를 처리합니다.

2023년 9월 14일
·
0개의 댓글
·