programming
-
[PROGRAMMING] RESTful API설계programming 2020. 7. 26. 22:14
REST 웹에 존재하는 모든 자원( DB, 이미지 등 )에 고유한 URL을 부여하여 활용하게 하는 아키텍처 자원마다 고유한 URL을 부여하여 자원의 활용이 이루어지기 때문에 각 URL의 설계가 이전보다 중요하게 되어 해당 URL만 보더라도 어떤 작업이 이루어지는지 알 수 있도록 설계해야 한다. 장점 하나의 환경에 집중되어 설계하는 것이 아닌 다양한 디바이스 환경 ( 안드로이드, ios, 웹 등 )에게 서비스를 제공하는 것이 가능하다는 장점이 있다. 메소드 메소드 규칙 설명 GET 데이터를 조회할 때 활용되는 메소드 POST 새로운 데이터를 Write할 때 활용되는 메소드 PUT 데이터를 수정할 때 활용되는 메소드 PATCH 데이터를 수정할 때 활용하는 메소드 DELETE 데이터를 삭제할 때 활용되는 메소..
-
[PROGRAMMING] 라이브러리, 프레임워크 용어 간단 정리programming 2020. 7. 26. 18:50
라이브러리 컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것 재사용이 가능한 필요 기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 클래스나 함수로 만들어진 것 장점 1. 코드의 중복을 줄임 ( 가독성, 유지보수 향상 ) 2. 프로그래밍 시간 단축 ( 생산성 향상 ) 프레임워크 어떤 프로그램을 만들기 위한 기본 틀 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 장점 1. 프로그램을 편리하고 빠르게 만들 수 있음 ( 생산성 향상 ) 2. 코드가 체계적이어서 유지보수에 안정적 단점 1. 코드를 습득하고 이해하는데 오랜 시간이 걸린다. 2. 이미 짜여진 틀이 있다보니 개발자가 자유..
-
[PROGRAMMING] Gradleprogramming 2020. 7. 25. 18:14
Gradle groovy 언어를 사용한 빌드툴. ( 빌드, 테스트, 배포 자동화 ) - Ant처럼 유연한 범용 빌드 도구 - 멀티 프로젝트에 사용하기 좋음 - Apache Ivy에 기반한 강력한 의존성 관리 - 원격 저장소나 pom, ivy 파일없이 연결되는 의존성 관리 지원 구성 모든 빌드는 하나 이상의 project로 구성. 또한 project는 하나 이상의 task로 구성됨 ( task는 빌드를 수행할 때 하나의 작업 단위를 의미 ) - Projects : Tasks의 집합체. build.gradle을 일컫기도 하며 단일 혹은 멀티 프로젝트로 구성할 수 있음 - Tasks : 프로젝트에는 하나 이상의 태스크가 필요함. 각각의 태스크는 빌드를 수행하는 작업의 일부라고 볼 수 잇으며 상호 의존한다. 하..
-
[PROGRAMMING] Mavenprogramming 2020. 7. 25. 17:26
Maven - Maven은 자바용 프로젝트 관리 도구로 Apache Ant의 대안으로 만들어졌다. - Ant와 마찬가지로 프로젝트의 전체적인 라이프 사이클을 관리하는 도구이며 많은 편리함과 이점이 있어 널리 사용됨. - 'POM.xml'이라는 파일에 필요한 라이브러리를 정의해놓으면 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는 데에 필요한 다른 라이브러리까지 관리하여 네트워크를 통해서 자동으로 받아준다. - Maven은 중앙 저장소를 통한 자동 의존성 관리를 한다. - 간단한 설정을 통한 배포 관리가 가능하다. 생명주기 메이븐 실행 단위를 골(Goal)이라고 하며 골들이 상호 연관해 실행되는데 그러한 관계를 메이븐 골의 생명주기라고 한다. Clean validation -> compile ->..
-
[PROGRAMMING] 빌드와 빌드 도구programming 2020. 7. 25. 16:12
빌드 소스 코드에서 실행가능한 애플리케이션으로 변환하는 과정 또는 그에 대한 결과물 개발자가 작성한 소스 코드 (.java), 프로젝트에서 쓰인 각각의 파일 및 자원 (.xml, .properties, .jpg)을 JVM이나 톰캣 같은 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물 빌드 도구 ( Build Tool ) 소스 코드에서 컴파일, 테스트 등을 통해서 실행가능한 애플리케이션을 자동 생성해주는 프로그램 빌드 자동화는 소프트웨어 개발자가 일상 업무에서 수행하는 다양한 작업을 자동화 하는 것 1. 종속성 다운로드 ( 라이브러리 자동 추가 및 관리 ) 2. 소스코드를 바이너리 코드로 컴파일 3. 바이너리 코드를 패키징 4. 테스트 실행 5. 배포 빌드 도구를 왜 사용하는가? 웹, 앱 프로그..
-
[PROGRAMMING] 아파치와 톰캣, 드디어 이해했다.programming 2019. 9. 30. 21:34
여러 블로그를 찾아보고 구글링을 해보아도 항상 같은 얘기뿐이었던 아파치와 톰캣 아파치는 정적인 데이터를 처리하고 톰캣은 동적인 데이터를 처리한다. 무슨 말이지는 알았지만 적용해서는 이해하기가 힘들었다. Spring Boot 로 프로젝트를 몇 번 해보았지만 아파치 톰캣이 뭔지 모르고 내장 서버다라고 해서 사용하고만 있다가 요즘 이론적인 부분에 대해 부족함을 느껴서 자세히 알아보았다 아파치는 HTTP 통신을 하는 웹 서버다. 웹 서버라 함은 클라이언트가 요청을 하면 그 요청에 대한 데이터를 만들어서 응답하는 역할을 하는데 html, css 등의 정적인 데이터만을 만들 수 있다. 톰캣은 가장 널리 사용되고 있는 WAS(Web Application Server) 이다. WAS 는 웹 서버 + 웹 클라이언트의 역..