본문 바로가기

Dev. Etc/knowledge

(16)
GraphQL의 개념 및 특징 (RESTful API 비교) ● GraphQL(Graph Query Language)이란? Facebook에서 만든 어플리케이션 레이어 쿼리 언어입니다. 기존의 웹 or 모바일 어플리케이션의 API를 구현 할때는, 통상적으로 RESTful API가 사용됩니다. 기존의 RESTful API를 사용하여 API를 구현한다면 우리가 클라이언트사이드에서 어떠한 기능이 필요할 떄마다 그때 새로운 API를 만들어주어야했습니다. 즉, 단일 요청으로 많은 데이터를 얻을 수 있습니다. ※ 기존 RESTful API의 문제들 Atomic한 REST API라는 큰 장점의 이면에 클라이언트의 코드는 점점 복잡해지고 있습니다. 기능이 추가될때마다 end-point는 점점 늘어나고 화면을 그리기 위해 REST API 응답간 의존성을 핸들링하기 위한 코드와 각..
[CI/CD] Jenkins 과 GitHub Actions의 개념, 차이점 [CI/CD] Jenkins 과 GitHub Action의 개념, 장단점에 대해 포스팅하겠습니다. JenKins와 GitHub Action 소개와 차이점을 앞서 배포, 빌드, 컴파일에 대해 간략하게 알고 싶다면 아래 링크를 참고해주세요. ▶빌드, 배포, 컴파일의 개념 & 차이점 - 바로가기 ● Build를 자동화 해야하는 이유 : 빌드는 하루에 한번을 할 수도 있고 아예 하지 않을수도 있지만 일주일, 한달로 따지면 꽤 많이 빌드를 합니다. 그리고 이게 1년이면 많은 시간을 투자해야합니다. 예를 들어 예전에는 java를 빌드할때 javac라는 커맨드를 직접 사용했지만 지금은 IDEA를 이용하면 main() 메소드를 실행했을때 javac를 하고 java가 실행이 됩니다. 이렇게 반복되는 과정은 버튼 하나 o..
빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie) 빌드, 배포, 컴파일의 개념 & 차이점 (Build, Deploy, Complie) 서버에 기능을 추가 하려면 개발자가 로컬 PC에서 개발을 하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영해야 합니다. 서버에 반영을 하는 것을 "배포"라고 하고 배포(Deploy) 하기 위한 과정을 "빌드"라고 합니다. ● 빌드(Build)란? 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말합니다. 예를 들어 Java프로젝트를 진행한다면 개발자가 작성한 A.java와 여러가지 정적 파일등에 해당하는 resource가 존재합니다. 빌드를 한다면 소스코드를 컴파일해서 .class로 변환하고 resource를 .class에서 참조할..
[웹소켓] WebSocket의 개념 및 사용이유, 작동원리, 문제점 오늘은 웹소켓에 대해 알아보겠습니다. ● 웹소켓(WebSocket)의 배경 : 인터넷이 나오고 HTTP를 통해서 서버로부터 데이터를 가져오기 위해서는 오로지 URL을 통한 요청이 유일한 방법이었습니다. 때문에 아이디 중복 확인과 같은 유효성 검사는 서버로 데이터를 보내는 중간과정에서 새로운 페이지 요청을 하게 되었습니다. 여기서 발전된 방식이 Ajax통신으로 클라이언트에서 XMLHttpRequest 객체를 이용하여 서버에 요청을 보내면 서버가 응답을 하는 방식입니다. 페이지 요청이 아닌 데이터 요청이라 부분적으로 정보를 갱신할 수 있게 됩니다. 즉, 사용자의 이벤트로부터 Javascript는 사용자가 작성한 값이 쓰여진 DOM을 읽습니다. 그리고 XMLHttpRequest 객체를 통해 웹서버에 해당 값을..
[Web] 크롤링(Web Scraping)이란? 오늘은 웹 크롤링에 대해 포스팅 하겠습니다. 우리가 흔히 부르는 웹 크롤러 크롤링의 정식명칭은 'Web Scraping' 입니다. 크롤링의 사전적인 의미는 기어다닌다는 뜻으로 컴퓨터 소프트웨어 기술로 웹사이트들을 돌아다니면서 정보를 수집하는 행위라고 합니다. 이때 한 페이지만 방문하는 것이 아니라 그 페이지에 링크되어 있는 또 다른 페이지를 지속적으로 방문하고 이처럼 링크를 따라 웹을 돌아다니는 모습이 마치 거미와 비슷하다고하여 스파이더라고도 부르기도 합니다. 예를 들면 네이버 검색 순위 자료가 필요하다면, 사이트에 들어가서 일일이 보고 엑셀에 값 정리해서 파일을 가지고 있을 수도 있습니다. 하지만, 이 데이터들을 다른 프로그램이나 개발을 해야할때 사용하려면 DataBase에 저장해야 할 필요가 있습니다..
[메이븐] Maven은 무엇일까? Spring 프레임워크 공부를 하면서 프로젝트를 진행하려하다 보니 Maven 프로젝트에 추가를 해주어야 했습니다. 처음 메이븐을 접하게 되었기에, 제가 알아보고 공부한 내용을 포스팅 하려합니다. 메이븐(Maven)이란 무엇일까? Java기반 프로젝트의 *라이프사이클 관리를 목적으로 하는 빌드 도구이다. 컴파일과 빌드를 동시에 수행, 테스트를 병행하거나 서버 측 Deploy 자원을 관리할 수 있는 환경을 제공한다. 또한 라이브러리 관리 기능도 내포하고 있다. Java로 개발하다 보면 다양한 라이브러리를 필요로 하게 되는데, *pom.xml 파일에 필요한 라이브러리만 적으면 Maven이 알아서 다운받고 설치해주고 경로까지 지정해준다. 프로젝트를 진행하다 보면 라이브러리들을 많이 활용하게 됩니다. 점점 많아지..
IP 의미 및 주소체계 & 클래스 구별법 컴퓨터를 비롯한 네트워크 장비, 통신기기들은 인터넷을 사용하기 위해 IP주소를 할당받아 이용하게 됩니다. IP라는 것은 Network에서 중요한 핵심 중 하나로서, 클래스로 구분을 하거나 서브넷팅을 하는 등의 방식을 이용하여 활용합니다. * 위 내용은 위키백과에 나오는 사전적인 의미입니다. ● IP의 의미 : IP는 Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜입니다. IP 프로토콜에서 IP기기의 주소를 나타내는 것이 바로 IP 주소 입니다. 현재 사용되는 IPv4방식의 IP 수는 한정되어 있기에 모든 Host에게 고유의 IP를 할당하지 못합니다. 그렇다고 해서 하나의 호스트에 하나의 IP만 사용하지 않습니다. 일반 가정에서 PC의 [네트워크 설정]에서 확인하실 수..
스냅샷(Snapshot) 개념 ▶ 스냅샷(Snapshot) 이란? : 특정 시간에 데이터 저장 장치의 상태를별도의 파일이나 이미지로 저장하는 기술로, 스냅샷 기능을 이용하여 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를 복원할 수 있습니다. * 스냅샷이 필요한 이유 데이터 분석, 데이터 보호 및 데이터 복제와 같은 작업을 위해 수행된다. 재해복구와같은장애상황에서도 데이터 복원을 통해 중요하다. 긴급한 상황에서 최상의 데이터 보호 수단이 될 수 있다. 대용량 데이터의 백업관리를 단순화하여 운영 관리 비용을 최소화할 수 있다.