728x90
반응형
SMALL

2024/03 23

[클라우드] IaaS vs PaaS vs SaaS 에 대하여!

클라우드 컴퓨팅은 가상화된 IT 리소스를 통해 서버, 스토리지, 데이터베이스, 네트워킹, 애널리틱스 등의 서비스를 제공하는 기술입니다. 사용자는 필요에 따라 이러한 리소스를 원격으로 사용하고, 사용한 만큼의 비용을 지불합니다. 클라우드 컴퓨팅은 물리적인 하드웨어 관리의 필요성을 줄이며, 빠르게 확장 가능한 인프라를 제공함으로써 기업이나 개인이 보다 유연하게 컴퓨팅 리소스를 사용할 수 있도록 합니다. IaaS (Infrastructure as a Service) 가장 기본적인 클라우드 서비스 모델로, 가상화된 컴퓨팅 리소스를 인터넷을 통해 제공합니다. 사용자는 서버, 스토리지, 네트워크와 같은 인프라를 임대하여 사용하고, 필요에 따라 확장하거나 축소할 수 있습니다. IaaS는 사용자에게 가장 높은 수준의 ..

개발지식 2024.03.25

DI를 하지 않았을 때 NullPointerException 발생 이유

이 게시글은 이동욱 - "스프링 부트와 AWS로 혼자 구현하는 웹 서비스" 에서 참고하였습니다. 위 책을 참고하여 JUnit 에서 값을 등록하는 테스트를 만들어보았습니다. 문제 상황 JUnit 을 수행하는 과정에서 posts api 까지 정상적으로 값이 전달되지만 NullPointerException 에러가 발생 ■ PostsApiControllerTest.java @Test public void Posts_등록된다() throws Exception { //given String title = "title"; String content = "content"; PostsSaveRequestDto requestDto = PostsSaveRequestDto.builder() .title(title) .cont..

개발지식 2024.03.22

닷넷(.net) 이란?!

닷넷(.net)이란 닷넷 프레임워크(.NET Framework)는 마이크로소프트에서 출시한 윈도우 프로그램 개발 및 실행 환경입니다. 네트워크 작업, 인터페이스 등의 많은 작업을 캡슐화하였고, 공통 언어 런타임(CLR)이라는 이름의 가상 머신 위에서 작동합니다. 주요 특징 언어의 다양성 지원 C#, VB.NET 등 다양한 프로그래밍 언어를 지원하여 개발자가 선호하는 언어를 선택하여 개발할 수 있습니다. 통합 개발 환경(IDE) 비주얼 스튜디오(Visual Studio)와 같은 강력한 통합 개발 환경을 제공하여, 개발의 효율성을 높여줍니다. 풍부한 라이브러리 .NET Framework는 다양한 기능을 제공하는 방대한 라이브러리를 포함하고 있어, 개발 시 필요한 기능을 쉽게 구현할 수 있습니다. 멀티 플랫폼..

개발지식 2024.03.21

이벤트 기반 아키텍처 (feat. 배달의민족 마이크로서비스 여행기)

우아콘 2020 - 배달의 민족 마이크로서비스를 보던 중 이벤트 기반 아키텍처 부분에 흥미가 생겨 공부도 할 겸 정리를 해보았습니다! API 기반 데이터 전달 방식의 문제 배달의 민족에서는 주문시스템에서 주문이 들어오면 아래의 순서대로 처리가 되는데 주문 생성 ▶ 접수 ▶ 배달완료 ▶ 리뷰 알림 예를 들어 리뷰 시스템은 리뷰를 작성해 달라는 푸쉬 알림을 위해 주문 완료 정보가 필요합니다. 이는 주문 시스템에서 리뷰 시스템으로 API를 전달해주어야하는데, 리뷰시스템 측 API 에서 timeout 또는 500 에러(내부서버 오류)가 발생하는 상황이 있을 수 있습니다. 장애의 전파를 막기위해 MSA 를 도입하였지만 연계가 되는 API들의 요청이 실패한다면 주문 시스템에도 영향이 갈 수 있습니다. 이에 대한 난..

개발지식 2024.03.19

스프링 웹 계층에 대하여..

스프링 프레임워크에서의 웹 계층은 사용자의 요청을 처리하고 응답을 생성하는 데 관련된 컴포넌트들을 포함합니다. 스프링 웹 계층은 크게 컨트롤러(Controller), 서비스(Service), 리포지토리(Repository), DTO(Data Transfer Object), 모델(Model) 등으로 구성됩니다. 이러한 계층 구조는 애플리케이션의 유지 보수성, 확장성 및 테스트 용이성을 높이기 위해 설계되었습니다. 컨트롤러(Controller) 컨트롤러 계층은 HTTP 요청을 받아들이는 진입점입니다. 클라이언트의 요청에 따라 어떤 처리를 할지 결정하고, 요청에 맞는 서비스 메소드를 호출합니다. 컨트롤러는 주로 @Controller 또는 @RestController 어노테이션을 사용하여 정의됩니다. @Rest..

개발지식 2024.03.18

[프로그래머스] 2016년 Lv1

문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 풀이 LocalDate와 getDayOfWeek() 메소드를 사용하여 요일을 구하고, 요일을 나타내는 영어 단어의 앞 세 글자를 반환합니다. 예를 들어, a가 5이고 b가 24..

코딩 테스트 2024.03.17

[프로그래머스] 핸드폰 번호 가리기 Lv1

문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 phone_number는 길이 4 이상, 20이하인 문자열입니다. 풀이 반복문을 돌려서 4자리수를 제외한 숫자는 마스킹 처리, 그 외에는 기존값을 붙혀서 처리했습니다~ 정답 class Solution { public String solution(String phone_number) { String answer = ""; int checkNum = phone_number.length(); for(int i=0; i

코딩 테스트 2024.03.16

사용자 중심의 서비스 개발 방법

IT 백엔드 개발자로서 사용자 중심의 서비스 개발 방법을 알아가는 것은 매우 중요합니다. 사용자 중심의 개발은 사용자의 필요와 경험을 최우선으로 고려하여 개발하는 방식을 말합니다. 이러한 접근 방식은 사용자 만족도를 높이고, 서비스의 성공 가능성을 크게 향상시킬 수 있습니다. 다음은 백엔드 개발자가 사용자 중심의 서비스를 개발하기 위해 고려할 수 있는 몇 가지 방법을 설명해드리겠습니다! ① 사용자 요구 사항 이해하기 사용자의 요구를 이해하는 것이 첫 걸음입니다. 사용자 인터뷰, 설문조사, 피드백 세션 등을 통해 사용자의 필요와 문제점을 파악해야 합니다. ② 사용자 스토리 작성 사용자의 요구 사항을 바탕으로 사용자 스토리를 작성합니다. 사용자 스토리는 사용자가 서비스를 통해 달성하고자 하는 목표를 간결하게..

개발지식 2024.03.15

[프로그래머스] 포켓몬 Lv1

문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..

코딩 테스트 2024.03.14

Access Token이란?!

Access Token이란? Access Token은 사용자나 컴퓨터 프로그램이 접근할 권리를 증명하는데 사용되는 문자열이며, 일반적으로 인터넷에서 사용자 인증 및 권한 부여를 위해 주로 사용됩니다. 예들 들어, 소셜 미디어 플랫폼이나 웹 애플리케이션에서 사용자가 로그인할 때, 서버는 사용자의 인증 정보를 확인한 후 엑세스 토큰을 발급합니다. 그리고 사용자가 이후 서비스를 이용할 때마다 이 토큰을 사용하여 자신의 인증 상태를 증명하게 됩니다. 권한을 부여받는 데에는 Access Token만 있으면 인증이 가능 하지만, 해커에 의해 토큰이 탈취된다면, 로그인을 하여 여러 나쁜 행위들을 할 수 있습니다. 그래서 주로 Access Token의 만료기간을 짧게 주고 시간이 지나면 만료되어 사용할 수 없게끔 합니..

개발지식 2024.03.13
728x90
반응형
LIST