JavaRush /Java Blog /Random-KO /커피 브레이크 #31. 모든 개발자가 피해야 할 9가지 직업 실수 REST API 아키텍처가 인기를 얻...

커피 브레이크 #31. 모든 개발자가 피해야 할 9가지 직업 실수 REST API 아키텍처가 인기를 얻는 이유는 무엇입니까?

Random-KO 그룹에 게시되었습니다

모든 소프트웨어 개발자가 피해야 할 9가지 직업상의 실수

출처: Infoworld 커피 브레이크 #31.  모든 개발자가 피해야 할 9가지 직업 실수  REST API 아키텍처가 인기를 얻는 이유는 무엇입니까?  - 1 솔직하게 말씀드리겠습니다. 여러분 중 일부는 자신이나 부모님이 돈을 많이 버는 것이 더 쉬울 것이라고 생각했기 때문에 프로그래밍을 배우기 시작했습니다. 당신은 학교에서 컴퓨터를 별로 좋아하지도 않았고, 소프트웨어 개발을 별로 좋아하지도 않았습니다. 이것이 사실이라면 이는 당신이 항상 평범한 프로그래머가 될 것임을 의미합니다. 예, 우리 업계가 선호하기 때문에 당신은 좋은 돈을 벌 수 있지만 이 기사는 당신을 위한 것이 아닙니다. 하지만 어렸을 때 전자 제품이 어떻게 작동하는지 알아내기 위해 분해했다는 이유로 처벌을 받았다면... 비디오 게임을 만드는 방법을 배우기 위해 인터넷에서 반나절을 보냈다면... 귀중한 자유 시간을 무엇에 대해 배우는 데 보냈다면? 아무도 당신에게 묻지 않았습니다... 이 글은 당신을 위한 것입니다. 진로에 대한 인식을 바꿔야 합니다. 더 이상 재미로 코드를 작성하지 않습니다. 돈을 위해 코드를 작성합니다. 재미로 개인 프로젝트를 지원할 수 있습니다. 하지만 적어도 하루 일과를 즐겁게 보내시기 바랍니다. 그렇지 않다면 가능하면 더 나은 곳을 찾으십시오. 당신의 목표는 은퇴 기금을 개설하고, 세후 자금을 모두 여기에 넣고, 집과 자동차를 구입하고, 원하는 일을 하는 것이어야 합니다. 어쩌면 여행. 동시에 현재 직업뿐만 아니라 경력에 대해서도 생각해야 합니다. 이렇게 하려면 9가지 함정을 피해야 합니다. 이제 이에 대해 논의하겠습니다.

함정 #1: 한 기술에 너무 오랫동안 머물지 마세요

이해합니다. C#이나 Java, JavaScript, Python 또는 Cobol을 좋아하시나요? 그러나 대부분의 기술에는 채택, 피크, 아웃소싱, 틈새 시장 및 노후화의 수명 주기가 있습니다. 내 말은, 당신이 1980년대에 Cobol을 알았다면 정말 멋졌을 것입니다. 하지만 요즘 Cobol 프로그래머들은 돈을 많이 벌지 못합니다. 즉, 프로그래밍 언어 하나만 알면 조만간 비용을 절감하고 수입이 줄어들기 때문에 더 저렴한 도시로 이사해야 한다는 것이 요점입니다.

함정 2번: IT 독점자가 되지 마세요

투자를 헤징해야 합니다. 현재 시장을 지배하고 있는 기술의 전문가가 되기만 하면 되는 것처럼 보일 수도 있습니다. 하지만 그러면 많은 경쟁에 직면하게 될 것입니다. 또한 전문 분야에 대한 수요가 감소하는 경우 이미 종료 계획을 마련해야 합니다. 예를 들어, Java가 나왔을 때 나는 C++ 괴짜였습니다. 나는 자바를 배웠다. 몇 년 전, 모든 사람들은 Ruby를 프로그래밍 언어 분야의 새로운 떠오르는 스타로 이야기하기 시작했습니다. 그리고 어느 시점에서는 Perl이 Java와 같은 수준에 도달할 것처럼 보였습니다. 미래를 예측하는 것은 어렵기 때문에 위험을 회피하는 것이 취업 시장에서의 타당성을 보장하는 가장 안전한 방법입니다.

함정 #3: 유행에 얽매이지 마세요

조만간 마법이 사라집니다. 사람들은 Groovy나 Ruby 개발자를 고용하지 않을 것입니다. 상사가 프로젝트에서 레거시 언어를 사용하도록 허용한다면 이는 그가 신경 쓰지 않거나 단순히 무지하기 때문일 것입니다. 꼭 최신 기술을 배우고 사용해 보세요. 이에 대해 가장 먼저 알고 전문가가 될 준비를 하십시오. 반면에, 전문 분야에 대한 수요가 감소할 경우 급격한 변화를 준비할 수도 있습니다. 언어든 데이터베이스든 사랑에 빠질 다른 신기술은 항상 있습니다.

함정 #4: 규칙에 대한 알레르기

모든 조직에는 규모에 상관없이 고유한 사무실 규칙이 있습니다. 당신은 그것들을 연구하고 따라야 할 것입니다. 그렇지 않으면 다른 사람의 게임에서 볼모가 되거나 팀에서 고립되는 자신을 발견하게 될 것입니다. 직장에서의 경력과 생산적인 관계에 관심이 있다면 사무실 규칙에서 방어 전술을 따르는 방법을 배우십시오.

함정 #5: 사업에 대한 무관심

"저는 개발자일 뿐 사업에는 관심이 없습니다." 이것은 아무데도 갈 수 없는 길이다. 계산하는 법을 배워야합니다. 당신의 회사는 잘 지내고 있나요? 주요 사업 목표는 무엇입니까? 그녀의 가장 중요한 프로젝트는 무엇입니까? 기술이나 소프트웨어가 이를 달성하는 데 어떻게 도움이 됩니까? 귀하의 회사는 전체 산업에 어떻게 적응합니까? 이러한 질문에 대한 답을 모른다면 상대적으로 적은 금액을 받고 중요하지 않은 회사에서 중요하지 않은 사람들을 위한 중요하지 않은 프로젝트를 수행하게 될 것입니다.

함정 6번: '노동조합 연대' 사고방식

내가 어렸을 때, 내 동료 중 한 명은 거의 모든 일을 6개월 전에 미리 계획하는 사람이었습니다. 그가 휴가를 가는 실수를 저질렀기 때문에 나는 2주 만에 전체 프로젝트를 끝냈고 그에게 한 작품만 남겨두었습니다. 나는 그가 그것에 대해 기뻐할 것이라고 기대했습니다. 그는 행복하지 않은 것으로 밝혀졌습니다. 그가 나를 해고하기 위해 모든 기회를 이용하면서 모든 것이 끝났습니다. 이것이 그의 주요 목표가되었습니다. 그는 심지어 새 이사에게 나에 대해 불평까지 했습니다. 물론 나는 할 일을 다 했다. 나는 혁신가였습니다. 저는 항상 일을 더 잘하고 더 빠르게 처리하고 문제를 해결하는 새로운 방법을 찾고 있었습니다. 내가 다른 직장으로 떠난 직후에 그는 은퇴했습니다. 카페에서 그 사람을 몇 번 봤는데, 우리는 서로 모르는 척 했어요. "천천히 하세요. 그렇지 않으면 상황이 더 나빠질 것입니다." 내 조언: 올바른 코드를 작성하되 예상치 못한 상황에 대비하세요. 문제를 해결할 수 없다면 문을 닫고 나가십시오. 귀하의 회사만이 시장에 나와 있는 것이 아닙니다.

함정 7번: 당신은 자신의 가치를 모른다

"나는 돈 때문에 여기 온 것이 아니다." 그럼 취미를 가지세요. 다음 월급에 대해 생각하면서 매일 출근하지 마십시오. 또한 다른 사람보다 수입이 50% 적다면 직장에 출근해서는 안 됩니다. 당신의 가치를 알고 그것을 과소평가하지 마십시오.

함정 #8: 직업을 직업처럼 대하는 것

"그냥 직업일 뿐이야." 아니요, 이것은 경력의 한 단계입니다. 당신은 이 일을 영원히 할 수는 없습니다. 그럼 여기서 무엇을 배울 수 있나요? 다음 단계는 무엇입니까? 궁극적으로 어디로 가고 싶나요? 이 일이 당신이 그 목표를 달성하는 데 어떻게 도움이 될까요? 주변 환경에 대한 인식을 높이십시오. 이것은 장기적으로 당신에게 도움이 될 것입니다. 그것은 단순한 직업이 아니라 여행입니다.

함정 9번: 돈만 문제라고 생각하는가?

영업사원들은 “동전을 던지시면 제가 일합니다.”라고 말하고 싶어합니다. 예, 하지만 판매 분야에서 일하지 않는 한, 돈 때문에 그 일을 하는 사람과 함께 일하고 싶어하는 사람은 아무도 없습니다. 나는 자신의 업무를 책임지는 사람과만 일하고 싶다는 것을 알고 있습니다. 당신은요? 반면에, 참을 수 없을 정도로 책임감을 가질 필요는 없습니다. 당신이 정말로 걱정하는 것이 탭이나 공백에 대한 영원한 논쟁이라면 진정제를 복용해야 할 수도 있습니다.

REST API 아키텍처가 인기를 얻는 이유는 무엇입니까?

출처: DZone 즉각적인 의사소통은 놀라운 일입니다. 우리 모두는 세계 어느 곳과도 즉각적으로 소통할 수 있다는 사실에 익숙합니다. 데스크톱 컴퓨터나 모바일 장치를 통해 어디서나 무엇이든 구매, 게시, 첨부 및 선택할 수 있습니다. 우리는 이전과는 전혀 다른 방식으로 서로 연결되어 있고 세상과도 연결되어 있습니다. 그런데 어떻게 이런 일이 일어나는 걸까요? 데이터는 "거기서" 어떻게 우리에게 전달되나요? 커피 브레이크 #31.  모든 개발자가 피해야 할 9가지 직업 실수  REST API 아키텍처가 인기를 얻는 이유는 무엇입니까?  - 2장치와 애플리케이션은 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 서로 통신합니다. 이것이 바로 "후드 아래"의 엔진입니다. 이는 항상 배후에 있으며 우리는 이를 평범한 것으로 생각하는 경향이 있지만 우리가 의존하는 모든 상호 작용을 생성하는 것은 API입니다.

API란 무엇입니까?

간단히 말해서, API는 요청을 수락하고 시스템에 수행하려는 작업을 말한 다음 응답을 반환하는 메신저입니다. 시각적인 예를 들어 API를 레스토랑의 웨이터로 상상해 보세요. 당신이 테이블에 앉아 손에 메뉴판을 들고 있고 주방이 주문을 준비하는 시스템의 일부라고 상상해 보세요. API는 주문을 주방으로 전송하고 음식을 테이블로 배달하는 링크입니다.

실제 예를 들어보겠습니다.

우리 모두는 온라인으로 항공편을 검색하는 과정에 익숙하며, 항공편을 예약하려면 항공사 웹사이트와 상호 작용해야 한다는 것을 알고 있습니다. 해당 데이터베이스에 액세스하여 특정 날짜에 좌석이 있는지 확인하고 항공편 요구 사항에 따라 예상할 수 있는 비용을 확인하세요. 하지만 정보에 직접 접근할 수 있는 항공사 웹사이트를 이용하지 않는다면 어떻게 될까요? 다양한 항공사로부터 정보를 수집하는 온라인 예약 서비스를 이용한다면 어떨까요? 이 서비스는 항공사의 API와 상호 작용합니다. 여기서 API는 친절한 웨이터처럼 좌석 예약과 승객의 식사 또는 수하물 선호 사항 선택에 대한 온라인 서비스 정보를 요청하는 인터페이스입니다. 그러면 API는 항공사의 응답을 받아 온라인 서비스로 다시 전달하고, 온라인 서비스는 승객에게 정보를 표시합니다. 다른 모든 애플리케이션, 데이터 및 장치 간에도 거의 동일한 프로세스가 발생합니다. 이들 모두에는 컴퓨터가 제어할 수 있는 API가 있으며, 이는 궁극적으로 통신을 생성합니다.

어떤 유형의 API가 있나요?

API 아키텍처는 두 가지 주요 방법으로 구현될 수 있습니다. 정보 전송을 구현하는 이러한 방법 중 하나는 SOAP이고 다른 주요 방법은 REST입니다. 우리는 API가 두 애플리케이션 간의 통신을 제공한다는 것을 이미 확립했습니다. 이제 우리는 SOAP와 REST가 통신 아키텍처에 정확히 어떻게 들어맞는지 알아볼 것입니다.

비누 API

SOAP(Simple Object Access Protocol)는 W3C라는 중앙 기관과 핵심 사양 세트 간에 설정된 특정 통신 원칙으로 사양을 따르는 웹 서비스입니다. 이 세트에는 다음이 포함됩니다:
  • 비누
  • WSDL
  • UDDI
SOAP는 두 애플리케이션이 서로 통신하는 방법을 정의하는 프로토콜입니다. 두 애플리케이션이 서로 통신할 때 공통 형식을 따라야 하며, 이 공통 형식은 XML 언어를 기반으로 해야 합니다. SOAP API의 XML은 봉투(Envelop), 헤더(Header), 본문(Body)으로 구성된 SOAP 메시지 표준을 준수해야 합니다.

REST API

이것은 매우 중요하지만 종종 오해되는 웹 서비스 개념이므로 REST 또는 RESTful API가 무엇을 의미하는지 알아보겠습니다. REST는 자체 아키텍처 원칙을 사용하여 두 애플리케이션 간의 통신을 시작하는 웹 서비스입니다. REST 아키텍처는 어떠한 프로토콜도 따르지 않고, 엄격한 사양도 없으며, 사양을 제어하는 ​​중앙 기관도 없는 아키텍처 스타일입니다. 이는 REST를 모든 종류의 서비스를 사용하거나 생성하는 데 다목적으로 만듭니다. 웹 서비스를 생성할 때 이러한 원칙을 적용하면 RESTful 웹 서비스가 생성됩니다. 이제 조금 더 깊이 들어가 REST 아키텍처의 기반이 되는 원칙을 알아봅시다.

통합 인터페이스

RESTful 아키텍처에서는 모든 것이 리소스로 간주될 수 있습니다. 예를 들어, 직원 관리 시스템용 애플리케이션을 생성하려는 경우입니다. 이 애플리케이션은 모든 언어, 모든 플랫폼, 모든 플랫폼을 사용하여 개발할 수 있습니다. 마찬가지로 모든 데이터베이스를 사용하여 내부 서비스를 처리할 수 있습니다. REST API의 리소스 개념은 사용자가 모든 정보나 모듈을 리소스로 정의할 수 있음을 의미합니다. 직원 관리 시스템이 제공되면 작성자는 직원 리소스, 부서 및 애플리케이션에 사용되는 기타 모듈을 정의할 수 있습니다.

무국적

RESTful 아키텍처에서는 모든 응답과 요청, 서버 간의 모든 통신이 상태 비저장입니다. 이는 서버가 시스템의 현재 상태를 유지하지 않고 클라이언트가 자체적으로 완료되는 요청을 보낼 수 있음을 의미합니다. 그리고 이 요청은 이전 요청에 의존하지 않습니다. 예를 들어 온라인으로 쇼핑하고 장바구니에 항목을 추가하는 경우 서버는 장바구니 상태를 유지하지 않으므로 사용자가 서버에 요청을 제출할 때마다 해당 시점의 장바구니 상태가 포함됩니다. 요청이 이루어졌습니다. 상태 비저장인 경우 서버가 세션을 저장하거나 유지하는 데 드는 오버헤드가 없으므로 웹 서비스의 성능이 향상됩니다.

캐싱 기능

마지막 프로토콜에서 우리는 RESTful 아키텍처에서 서버가 세션 상태를 저장하지 않고 모든 캐싱이 클라이언트 측에서 발생한다는 것을 확인했습니다. 클라이언트가 서버에 요청을 보낼 때마다 서버는 실제 데이터와 응답을 로컬에 저장해야 하는지 여부를 클라이언트에게 알려주는 기타 메타데이터가 포함된 응답을 반환합니다.

다단계 시스템

REST 원칙에 따르면 클라이언트와 서버 간에 통신이 있을 때마다 둘 사이에 여러 계층이 있을 수 있으며 이러한 계층을 사용하여 메시지 변환, 성능 향상, 캐싱 및 기타 다양한 목적을 구현할 수 있습니다. 각 의사소통 수준에는 특정 작업이 있습니다. 여러 계층의 통신을 통해 시스템이 효율적으로 작동하여 속도와 내구성이 향상됩니다.

요청 시 코드

이는 사용자가 응답을 받기 위해 요청을 제출할 때 작동하는 RESTful 웹 서비스의 선택적 제한 사항입니다. 응답은 클라이언트 측 코드를 실행할 수 있습니다. 이 원칙은 의사소통의 기능을 확장합니다.

REST API가 점점 더 자주 사용되는 이유는 무엇입니까?

REST는 대부분 사용하기 쉽고 유연하며 SOAP에 비해 여러 가지 장점이 있습니다. 예를 들어 웹 서비스와 상호 작용하는 데 값비싼 도구가 필요하지 않습니다. REST 아키텍처는 더 간단하고 쉽게 사용자 정의할 수 있으며 통신 모델을 생성할 때 특별한 기술이 필요하지 않습니다. 서버의 클라이언트 측을 이용하여 클라이언트 관련 정보를 저장할 수 있어 활용도가 효율적입니다. REST는 더 작은 메시지 형식을 사용하고 시간이 많이 걸리는 처리가 필요하지 않기 때문에 더 빠른 상호 작용을 제공합니다. REST는 디자인 철학에 있어서도 다른 웹 기술과 더 가깝습니다.

SOAP 또는 REST?

일반적인 웹 애플리케이션의 요구 사항에 비해 SOAP는 과도한 경우가 많습니다. REST는 웹 애플리케이션에 API가 필요할 때 필요한 모든 것을 갖춘 더 간단한 솔루션입니다. 그러나 작업을 수행하기 위해 API가 좀 더 복잡해야 하는 경우도 있습니다. 예를 들어 자동화된 요청에 API가 필요한 경우 SOAP API가 해당 시나리오에 더 적합합니다. 간단히 말해서, 문제가 크고 복잡하다면 SOAP를 선택하고, 간단한 솔루션이 필요하다면 REST를 선택하세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION