java
프로그래밍 언어 중 하나로, 약 20여년간 꾸준히 그리고 많이 쓰여왔고, 현재에도 javascript, python과 함께 많이 쓰인다.
특히 국내의 대용량 서비스를 하는 업체들과 관공서에서 쓰이고 있다.
python vs java
python과 java는 실행방식에 차이가 있다.
python : 인터프리터(실행하면 코드를 한줄씩 즉시 실행시켜주는 방식)
java : 컴파일(실행하면 코드를 컴퓨터 언어로 번역하여 실행시켜주는 방식)
속도는 인터프리터가 더 빠르다.
따라서 개발속도는 인터프리터 방식을 쓰고 있는 python이 더 빠르다.
코드량은 java가 더 복잡하고 많다.
변수타입은 java는 강타입, python은 약타입이라 java는 거의 대부분 변수의 타입을 선언해 줘야하지만 python은 안그래도 된다.
언어속도는 java가 더 빠르다.
위와 같이 언어마다 장단점이 있기 때문에 개발하려는 서비스에 맞게 골라서 쓰면 된다.
java spring
spring은 간단히 설명하자면 java의 프레임워크이다.
라이브러리의 양이 방대하고, 모듈화도 잘 되어있어 레고처럼 필요한 부분만 연결하여 사용할 수 있다.
그렇지만 데이터의 질은 천차만별이라 정확도와 신뢰도를 확인한 뒤 사용하는게 좋다.
레이어 구성
컨트롤러 : 클라이언트가 요청을 보내면 컨트롤러가 받아서 서비스에게 주고 서비스가 처리해서 돌려준 값을 클라이언트에게 전달해준다.
서비스 : 컨트롤러로부터 받은 요청을 해결하기 위해 db에서 자료를 받아 로직을 처리한다.
레파지토리 : db에 대한 업무를 담당하여 관리한다.
spring boot
spring은 기본설정으로 건드릴게 많고 번거로웠지만 이를 보완해서 spring boot가 개발되었다.
spring만으로는 api를 만들기도 어렵고, 실행이 되지 않아서 was를 이용했지만 spring boot를 통해 해결되었다.
용어정리
oop : Object Oriented Programming(객체지향프로그래밍)의 약자로 유지보수,안정성,확장에 좋다.
getter & setter : 외부에서 데이터에 접근하는 것을 private으로 막아 놓은 상태에서 데이터에 접근하기 위해 쓰인다.
gradle : pip과 같은 역할을 하는 빌드 시스템이다.
캡슐화 : 대부분의 멤버변수나 메서드는 숨기고 외부에 통합된 인터페이스만 제공하여 일관된 기능 구현이 가능하다.
this : 자기 인스턴스를 가르키며 생성된 인스턴스의 메모리 주소를 가르킨다.
접근제어지시자
private - 같은 클래스에서만 접근가능
default - 같은 패키지에서만 접근가능
protected - 같은 패키기나 상속관계의 클래스에서만 접근가능
public - 다 가능
rdbms : 관계형 데이터베이스 관리 시스템으로 컴퓨터에 정보를 저장하고 관리하는 기술이다.(MySQL, Oracle Database 등)
jpa : sql을 쓰지 않고 데이터를 조작할 수 있도록 해주는 번역기이다.
msa : 소트프웨어 개발 기법 중 하나이며, 하나의 어플리케이션을 여러 개의 작은 서비스로 나누어 개발하는 아키텍처이다.
'TIL' 카테고리의 다른 글
25_Step : 객체지향과 절차지향 프로그래밍 (0) | 2021.11.05 |
---|---|
24_Step : java의 살짝쿵 팁 (0) | 2021.11.04 |
22_Step : api gateway & RDS (0) | 2021.11.02 |
21_Step : route53연결 & 서버리스 (0) | 2021.10.27 |
20_Step : CloudFront & 도메인(https) 만들기 (0) | 2021.10.27 |