팀 최종 프로젝트(23.12~24.02)(4)-백엔드1-기능 소개

이장한·2024년 2월 22일

팀프로젝트

목록 보기
5/15

1.사용언어

지금부터는 백엔드에서 쓰인 기능, 코드들을 하나하나 자세하게 설명하겠다.

우선, 필자는 백엔드 언어로 java를 사용했다.

물론 파이썬으로 딥러닝을 돌린 만큼 Django를 사용해도 됐지만,

java가 아직까지는 기업에 수요가 많기 때문에 java를 사용했다.

2.사용 기술

필자의 사용 기술은 다음과 같다.

springboot, spring data jpa, ajax(서버간 통신)

3.사용 기술 설명-springboot

스프링 프레임워크는 많은 개발자들이 좋아하는 자바 기반 웹 개발 프레임워크이다.

그런데, 기능은 많지만 초기 속도가 느리다는 단점이 있었다.

그것을 해결하고자 한 것이 바로 스프링부트이다.

springboot는 스프링 프레임워크의 기능을 그대로 쓰면서, 개발자들이 더

빠르게 에플리케이션을 개발할 수 있게 한다.

스프링부트의 장점: 1.개발자가 귀찮게 직접 설정하는 것을 최소화한다.
2.또한, 의존성을 자동으로 관리해 주기 때문에, 개발자가 의존성을 관리할 필요가 없다.
3.내장 웹 서버를 제공하므로, 별도의 외부 웹 서버를 설치할 필요가 없다.
이를 통해 개발,배포 환경을 단순화할 수 있다.
4.스프링부트는 실행 가능한 jar 파일로 패키징해서, 간단하게 배포할 수 있다.

4.사용 기술 설명-spring data jpa

JPA는 (Java Persistence API)이다. 이는 자바 진영에서 ORM 기술 표준으로

사용되는 인터페이스의 모음이다.

ORM은 (Object-Relational Mapping)의 준말이다. 
우리가 일반적으로 알고 있는 애플리케이션 class와 RDB의 테이블을 매핑하는 것이다. 

장점
1.SQL Query를 간단하게 처리할 수 있다. 즉, 코드를 더 칠 필요가 없게되고, 코드의 가독성을 높인다.
2.매핑하는 정보가 class로 명시 되었기 때문에 ERD를 보는 의존도를 낮출 수 있고, 유지보수 및 리팩토링에 유리하다.

단점

1.프로젝트의 규모가 크면, 속도가 저하될 우려가 있다.
2.복잡한 SQL문은 결국 Query를 써야 할 수 있다.

jpa는 바로 이런 ORM 기술 표준으로 사용되는 인터페이스 모음이다.

자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

인터페이스이기 때문에, Hibernate,OpenJPA 등이 jpa를 구현한다.

위에서 보았듯 단점도 있지만 sql문을 작성할 시간을 줄여준다는 장점이 있기 때문에, jpa를 쓰는 것이 좋다.

5.사용 기술 설명-ajax

아약스는 네덜란드 축구리그에 소속되어 있는 축구 클럽으로....

아 이게 아닌가?

AJAX는 Asynchronous JavaScript and XML의 약자로, 말 그대로 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.

javascript를 사용한다는 것에서 알 수 있듯, 프론트엔드 부분에도 연관이 있다. (사실, 프론트 부분에 더 가깝다.)

하지만, 백엔드적인 부분이 아예 없는 것도 아니고 하니, 그냥 여기에서 설명해 보도록 하겠다.

ajax는 자바스크립트를 통해서 서버에 데이터를 비동기 방식으로 요청하는 것이다.

비동기 방식은 서버에 데이터를 요청할 때, 프로그램이 계속 돌아가면서 데이터를 요청하는 것이다.

비동기 방식으로 데이터를 요청하면 페이지 리로드를 할 필요가 없어진다. 이는 곧 리소스 낭비가 줄어들게 된다는 엄청난 장점으로 이어진다.

ajax는 서버에서 데이터를 받을 수 있기 때문에, 매우 유용하다.

6.지금까지 백엔드에서 쓰인 기술들을 간단히 설명했다.

다음 글 부터는 백엔드가 구체적으로 어떻게 쓰였는지 코드를 보면서 개념을 설명하도록 하겠다.

profile
기술을 통해 세상을 이롭게 하리라

0개의 댓글