728x90

그래들(Gradle)은 그루비(Groovy)를 기반으로 한 빌드도구이다.

근데 그루비는 뭐냐
JVM에서 실행되는 스크립트 언어로 자바를 기반으로 만들어서 자바랑 비슷하다
JVM에서 돌아가기 때문에 자바API도 사용 가능하다.

 

그래들(Gradle)은 그루비(Groovy)로 만들었고 요즘 메이븐(Maven) 대신 쓰는 빌드도구다.
그래들은 Ant와 Maven의 장점을 모아서 만들었다.

내가 궁금했던거는 lombok같은 라이브러리를 build.gradle 파일의 dependencies에 추가해야 하는데
dependency configuration(의존성 구성)이 뭐 이리 많은지..
dependency configuration는 라이브러리들이 적용될 범위를 정하는 곳이다.
아래는 공식문서다. 영어 잘하면 아래에서 보면된다.
https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management

 

The Java Plugin

If a dependent project has changed in an ABI-compatible way (only its private API has changed), then Java compilation tasks will be up-to-date. This means that if project A depends on project B and a class in B is changed in an ABI-compatible way (typicall

docs.gradle.org

dependency configuration의 종류는 아래와 같다

- implementation
- compile
- compileOnly
compileClasspath extends compileOnly, implementation
annotationProcessor
runtimeOnly
runtimeClasspath extends runtimeOnly, implementation
testImplementation extends implementation
testCompileOnly
testCompileClasspath extends testCompileOnly, testImplementation
testRuntimeOnly extends runtimeOnly
testRuntimeClasspath extends testRuntimeOnly, testImplementation
archives
default extends runtimeElements

compile은 연결된 API 모두가 프로젝트에 의해 노출되고
implementation은 노출되지 않는다.
runtimeOnly는 runtime 시에만 필요한 라이브러리 일때 사용

test들어간거는 테스트 수행시에만 적용되는거 등등

출처: https://kotlinworld.com/316

 

[Gradle] build.gradle의 dependencies 블록 한 번에 정리하기. implementation, testImplementaion의 차이와 라이브

dependencies 블록이란? dependencies 블록은 프로젝트를 구성하기 위해 받아와야 할 라이브러리를 정의해놓는 공간이다. dependencies 블록에는 보통 다음과 같은 문법이 들어간다. dependencies { implementation(

kotlinworld.com

 

728x90

'개념정리' 카테고리의 다른 글

CDN  (0) 2022.02.09
절대경로, 상대경로  (0) 2022.01.05
서블릿 (Servlet)  (0) 2021.10.25
JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
728x90

제이쿼리나 언더스코어 같은 라이브러리를 사용할려면

1. 홈페이지에서 라이브러리를 다운받아서 프로젝트에 복사하고 경로를 선언해주거나
2. CDN을 선언해야한다.

CDN
cdn은 content delivery nerwork의 약자로
html, css, js 및 이미지파일과 같은 정적 및 동적 웹 컨텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹서비스이다.
웹사이트의 접속자가 콘텐츠를 다운로드할 때 자동으로 가장 가까운 서버에서 다운로드할 수 있도록 해준다.

전세계 각지에 캐시서버를 엄청 많이 설치한다.
그리고 한국에서 접속하면 한국에서 가까운 캐시 서버가 정보를 보내고
미국에서 접속하면 미국에서 가까운 캐시 서버가 정보를 보낸다.
이걸 CDN이 자체적으로 해줘서 가장 가까운 곳에 있는 서버에서 보낼 수 있도록 정보를 찾아준다.

 

https://lascrea.tistory.com/167

 

AWS CloudFront(CDN)

CloudFront 란? - CDN(Contents Delivery Network) 서비스를 AWS에서 CloudFront라 부름 - Html, CSS, js 및 이미지 파일과 같은 정적 및 동적 웹 컨텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스 (정..

lascrea.tistory.com

 

 

728x90

'개념정리' 카테고리의 다른 글

Gradle dependency configuration 깔짝  (0) 2023.05.30
절대경로, 상대경로  (0) 2022.01.05
서블릿 (Servlet)  (0) 2021.10.25
JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
728x90

절대경로

최조의 시작점으로 경유한 경로를 전부 기입하는 방식,
컴퓨터는 절대경로로만 파일을 읽을 수 있다.
예 ) C:\Users\test\Desktop\File\직박구리/문서.txt

상대경로

예 ) ../문서.txt
      ../직박구리/문서.txt

'현재 위치한 곳을 기준'으로 해서 '그곳의 위치'
상대적인 경로, 현재 위치에 따라 주소?가 달라진다.
컴퓨터는 절대경로로만 파일을 찾을 수 있는데 상대경로로도 파일을 찾을 수 있는 이유는
저걸 절대경로로 변환해서 컴퓨터에게 알려주기 때문이다. 

 

 

https://mommoo.tistory.com/82

 

절대경로, 상대경로란?

안녕하세요. 프로그래밍을 하다보면, 경로에 관한 것을 처리하곤 합니다. 이때 어떤 API는 절대 경로 로 처리를, 또 다른 API는 상대 경로 로 처리를 하곤 합니다. 절대 경로 , 상대 경로 의 개념이

mommoo.tistory.com

https://blog.naver.com/tipsware/221275416466

 

[용어] 절대 경로, 상대 경로, 작업 경로에 대하여

: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969 1. 절대 경로 '절대 경로(A...

blog.naver.com

 

728x90

'개념정리' 카테고리의 다른 글

Gradle dependency configuration 깔짝  (0) 2023.05.30
CDN  (0) 2022.02.09
서블릿 (Servlet)  (0) 2021.10.25
JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
728x90
클라이언트의 요청을 처리하고, 그 결과를 반환하는
Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술

서블릿이란 자바를 사용해서 웹을 만들기 위해 필요한 기술 이다.

클라이언트가 어떠한 요청을 하면 그에 대한 결과를 전송해줘야 하는데, 이러한 역할을 하는 자바프로그램이 서블릿이다.
예를들어 사용자가 로그인을 하려고 아이디와 비밀번홀을 입력하고 로그인 버튼을 누르면
서버를 클라이언트의 아이디와 비밀번호를 확인하고, 다음페이지를 띄어주어야 하는데
이런 역할을 수행하는 것이 서블릿이다.

서블릿은 독자적으로 실행할 수 없고 톰캣과 같은 JSP/Servlet 컨테이너에서만 실행이 가능하다.

서블릿 동작과정


https://mangkyu.tistory.com/14

 

[JSP] 서블릿(Servlet)이란?

1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다.  클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해

mangkyu.tistory.com

https://jusungpark.tistory.com/15

 

Servlet 이란? 서블릿 이란?

자바 개발을 한다면 한번쯤은 들어봤을 것이다. 웹 서버 개발자라면 필히 알고있어야지!! 책과 인터넷을 뒤져보다 제일 이해하기 쉬운 블로그의 글을 가져와서 조금 수정했다. 1. 서블릿이란

jusungpark.tistory.com

https://morningcoding.tistory.com/entry/JSP%EC%99%80-Servlet%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

JSP와 Servlet이란 무엇인가?

정적 웹 페이지와 동적 웹 페이지 정적 웹 페이지란 '변하지 않는 페이지'를 뜻한다. 모든 이용자에게 동일한 내용을 보여주며, 한 번 작성된 후에, 변동을 보여주지 않는 웹 페이지이다. 동적 웹

morningcoding.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

CDN  (0) 2022.02.09
절대경로, 상대경로  (0) 2022.01.05
JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
패키지 시작이름 (import)  (0) 2021.08.05
728x90

자바 서버 페이지 (Java Server Page , JSP) 는 HTML내에 자바 코드를 삽입해서 
웹 서버에서 동적으로 웹페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다.
Java EE 스펙중 일부로 웹 어플리케이션 서버(Web Application Server, WAS)에서 동작한다.

JSP는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다.
하지만 서블릿과는 달리  HTML표준에 따라 작성되므로 웹 디자인 하기에 편리하다.

JSP와 비슷한 것들로는 PHP, ASP, ASP.NET 등이 있다.

출처 : https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%84%9C%EB%B2%84_%ED%8E%98%EC%9D%B4%EC%A7%80

 

자바서버 페이지 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 


JSP는 자바 언어를 기반으로 하고 있기 때문에 플랫폼에 상관없이 사용할 수 있다.

자바 언어에 대한 깊은 이해가 없어도 빠르게 배울 수 있다.

대규모 어플리케이션을 구현할 때 사용되는 스프링과 같은 프레임워크와 완벽하게 연동된다.

ASP.net와 달리 JSP는 유닉스, 리눅스, 윈도우즈 등 운영체제에 상관없이 사용 가능하다.

 

 

 


내 맘대로 해석

HTML로 코딩하니까 불편,
서블릿을 이용하면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며
화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등 비효율적인 측면들이 있다.
때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP(Java Server Pages)
jsp는 웹 어플리케이션 서버(Web Application Sever)에서 컴파일 되고 동작한다.

서블릿은 자바 소스코드 속에 html코드가 들어가 있는 형태인데
jsp는 반대로 HTML소스코드 속에 자바 소스코드가 들어가 있다.


https://uoonleen.tistory.com/68

 

[Java] JSP란 무엇일까? JSP를 사용하는 이유와 사용법을 익혀보자!

■ JSP란? ▶ JSP는 Servlet 클래스를 자동 생성할 때 참고하는 파일입니다. ───── ▶ 자동 생성이란? ex) hello.jsp --- [JSP 엔진}을 거치면 ---> hello_jsp.java(서블릿 클래스) 소스 파일 생성됩니다...

uoonleen.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

절대경로, 상대경로  (0) 2022.01.05
서블릿 (Servlet)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
패키지 시작이름 (import)  (0) 2021.08.05
binary 파일  (0) 2021.07.28
728x90
728x90

'개념정리' 카테고리의 다른 글

서블릿 (Servlet)  (0) 2021.10.25
JSP (Java Server Page)  (0) 2021.10.25
패키지 시작이름 (import)  (0) 2021.08.05
binary 파일  (0) 2021.07.28
keydown, keypress, keyup  (0) 2021.07.26
728x90

패키지 시작 이름

  • java : 자바 기본 패키지 (JDK 벤더에서 개발)
  • javax : 자바 확장 패키지 (JDK 벤더에서 개발)
  • org : 일반적으로 비 영리단체 (오픈 소스) 의 패키지
  • com : 일반적으로 영리단체 (회사) 의 패키지

대표적인 오픈소스 그룹의 아파치 코드들은 모두 org.apache 로 시작한다.

홈페이지는 http://www.apache.org 인데, 도메인 이름을 거꾸로 한 org.apache 로 시작한다

 


https://songeunjung92.tistory.com/38

 

[JAVA] 패키지 시작 이름

패키지 시작 이름 java : 자바 기본 패키지 (JDK 벤더에서 개발) javax : 자바 확장 패키지 (JDK 벤더에서 개발) org : 일반적으로 비 영리단체 (오픈 소스) 의 패키지 com : 일반적으로 영리단체 (회사) 의

songeunjung92.tistory.com

https://dblog94.tistory.com/entry/Java-Study-7%EC%9D%BC%EC%B0%A8

 

[Java Study] 7일차 package와 import

학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 클래스들을 구분하는 폴더, 집합의 개념입니다. 클래스에는 맴버 변수와 메소드를 담고

dblog94.tistory.com

https://catch-me-java.tistory.com/42

 

[Java-29] 자바 패키지, 접근제한자 & 클래스패스

Java Package, 접근제한자, classPath, 환경 변수 package 와 접근제한자, 클래스패스 에 관하여 우리가 실제로 개발하면서, 정말 많은 클래스를 만들거나, 이미 만들어져 있는 클래스를 사용할 수 있다.

catch-me-java.tistory.com

 

728x90

'개념정리' 카테고리의 다른 글

JSP (Java Server Page)  (0) 2021.10.25
정규표현식  (0) 2021.08.09
binary 파일  (0) 2021.07.28
keydown, keypress, keyup  (0) 2021.07.26
DOM (Document Object Model)  (0) 2021.04.29
728x90

파일의 종류
컴퓨터는 파일을 다음과 같이 두 가지 종류로 나누어서 다룬다.

1. 바이너리 파일(binary file)
2. 텍스트 파일(text file)

바이너리 파일은 데이터의 저장과 처리를 목적으로 0과 1의 이진 형식으로 인코딩된 파일을 가리킨다.
프로그램이 이 파일의 데이터를 읽거나 쓸 때는 데이터의 어떠한 변환도 일어나지 않는다.

텍스트 파일은 사람이 알아볼 수 있는 문자열로 이루어진 파일을 가리킨다.
프로그램이 이 파일의 데이터를 읽거나 쓸 때는 포맷 형식에 따라 데이터의 변환이 일어난다.

 


https://tcpschool.com/c/c_io_file

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

https://frhyme.github.io/python/binary_data/

 

binary data란 무엇인가?

binary data는 무엇인가?

frhyme.github.io

 

728x90

'개념정리' 카테고리의 다른 글

정규표현식  (0) 2021.08.09
패키지 시작이름 (import)  (0) 2021.08.05
keydown, keypress, keyup  (0) 2021.07.26
DOM (Document Object Model)  (0) 2021.04.29
html 라이프사이클  (0) 2021.04.28

+ Recent posts