본문 바로가기

전체 글

(276)
API API가 무엇인가? 우선, API는 Application Programming Interface의 약자이다. 인터페이스는 어떤 장치간 정보를 교환하기 위한 수단을 의미하는데 예를 통해 알아보자. A라는 응용프로그램에서 다른 B라는 응용프로그램을 사용할 수 있도록 A에서 B를 제어할 수 있게 만든 프로그램을 의미한다. 즉, API를 사용하면 A라는 프로그램은 B라는 프로그램의 내부 로직을 몰라도 B프로그램에 정의되어 있는 기능을 쉽게 사용할 수 있음을 의미한다. 정리하자면 여기서 A라는 프로그램은 사용자가 될 수도 있고 하나의 웹사이트 하나의 앱도 될 수 있다. A 프로그램은 B 프로그램에 있는 자원을 요청 및 응답할 수 있다. 이를 지원하는 수단, 방법을 'API' 라고 한다.
HTTP 정의 - Hyper Text Transfer Protocol - Pront End(HTML)으로 부터 넘어오는 데이터를 서버에 요청하고 서버로 부터 응답을 받기 위해 정의된 프로토콜을 의미. 특징 - Request/Response -> 항상 HTTP 통신은 Request/Response로 구성되며 text로 설정되어 있다. - Stateless -> HTTP 통신은 절대 과거의 요청이나 응답에 대한 것을 모른다. (로그인 토큰, 브라우저의 쿠키, 세션, 로컬 스토리지 등으로 과거내용 관리) Request 정의) Client가 HTTP 통신을 통해 서버로 보내는 요청 메시지 구조) 1. StartLine : 요청의 시작 단락, 총 세개로 구성 - HTTP Method : 해당 요청이 의미하는 액션, GET..
sts4 응용프로그램을 열 수 없습니다. 어느날 갑자기 sts4가 안열린다. 나의 이유는 이러했다. 맥 환경에서는 sts4 사용을 위해 인증 절차를 거친다. 이때, 해당 인증 경로에 문제가 있으면 실행이 되지 않는다. 확인해보니 /Applications/SpringToolSuite4.app/Contents/MacOS/\/SpringToolSuite4 로 되어있었고 내가 실수로 '\'파일을 생성했던 것 같다. 해당 경로로 들어가 파일을 삭제하고 강제 인증을 실시했다. codesign --force --deep --sign - /Applications/SpringToolSuite4.app/Contents/MacOS/SpringToolSuite4 이후 잘 돌아간다.
Lombok 안됨 편리한 getter, setter, contructor 구현, 줄어든 코드 등을 위해 Lombok 사용을 마음먹었다. 1. dependancy 설정 가장 먼저 dependancy 설정을 한다. org.projectlombok lombok provided 2. Annotation 설정 getter, setter, constructor with no Argument 생성을 위해 애너테이션을 설정한다. @Getter @Setter @NoArgsConstructor 하지만, 안된다. 다른 라이브러리는 이렇게 하면 되던데 왜 안될까? 찾아보니 Lombok은 따로 설치가 필요하다. 해결 1. 해당 jar다운로드 https://projectlombok.org/download Download projectlombok...
Spring - MVC 이번에는 Spring의 Architecture인 MVC 구조에 대해서 알아보려고한다. 우선, MVC는 Model, View, Controller에 약자이다. 각각의 의미를 살펴보며 MVC의 기본 구조를 알아보자. Model - 데이터 처리 - 변경을 뷰에 통지 View - 사용자들에게 보여줄 화면 처리 - 모델에게 업데이트 요청 - 사용자의 입력을 컨트롤러에게 전달 Controller - 요청에 대한 행위 정의 - 뷰 선택 - 모델 업데이트와 매핑 근데 여기서는 자세히 알아야 할 필요는 없고 Controller가 뭔지, View가 뭔지, Model이 뭔지 정도만 알면 된다. 웹에서는 기본적인 이런 MVC 구조에 FrontController 패턴을 더해 생성한다. FrontController 구조를 살펴보..
Spring - Spring Boot Spring Boot 란 스프링에서 좀 더 개발을 쉽게하게 하기 위해 개발된 것으로 Spring Framework에서는 직접 설정해야 했던 여러가지 기능을 더이상 개발자는 신경쓰지 않고 다른 것에 몰두하게 하기위한 목적으로 개발되었다. 특징을 살펴보자 스프링 부트는 단독 실행할 수 있고, 상용화 수준의, 실행 가능한 스프링 기반 애플리케이션을 쉽게 생성할 수 있다. 대부분의 스프링 부트 애플리케이션들은 적은 설정을 필요로 한다. jar, war 배포 가능한 자바 애플리케이션 생성에 스프링부트를 사용할 수 있다. 서버가 내장되어 war 배포없이 웹 어플리케이션을 실행할 수 있다. 많이 사용되는 라이브러리를 모아놓은 starter pom파일을 제공하여 쉽게 라이브러리를 관리한다. 이 중에서도 두번째와 다섯번..
Maven - Build, Library 빌드 툴 중 하나인 Maven에 대해서 알아보려고 한다. 빌드 툴은 여러가지가 있지만 Maven부터 알아보고 나중에 다른 것도 작성해보려고 한다. 우선, 빌드란 무엇인가? 웹을 만든다고 가정을 했을때, 웹을 만들고 배포하고 리포팅을 한다. 그 이후에 우리가 아는 웹들을 사용할 수 있는 것이다. 자세히 보면 아래와 같다. 빌드 과정 1 - 프로젝트 생성 2 - 라이브러리 설정 3 - 구현 4 - 컴파일 5 - 테스트 6 - 패키징 7 - 배포 8 - 리포팅 위의 과정을 통해 결과적으로 웹이 생성이 되는데 이의 과정을 도와주는 것을 빌드 툴이라고 하며 각각의 빌드 툴은 서로 조금씩 다른 방식으로 빌드를 개발자에게 지원을 한다. 그 중 하나인 Maven에 대해서 알아보려고 하는 것이다. 빌드 용어정리 빌드 과..
JAVA - Loop(for, iterator, stream) 자바로 웹프로그래밍을 하다 보면 Map에 값 저장 후 그 값들을 반복문을 통해 읽어오는 경우가 많을 것이다. 이는 여러가지 방법이 존재하는데 한번 정리해보고자 한다. Map maps = new HashMap(); maps.put("key1", "value1"); maps.put("key2", "value2"); maps.put("key3", "value3"); // 1. For 문 사용 // key들을 불러와 key와 value 출력 for ( String key : maps.keySet() ) { System.out.println("key : " + key + " value : " + maps.get(key)); } // 2. Iterator 사용 // key들을 불러와 key와 value 출력 Ite..