> Java > java지도 시간 > 자바 백엔드 소개

자바 백엔드 소개

angryTom
풀어 주다: 2019-08-03 16:42:25
앞으로
3977명이 탐색했습니다.

자바 백엔드 소개

초보 프로그래머들은 언어만 배우면 특정 언어 엔지니어로 불릴 수 있다는 오해에 빠지곤 합니다. 하지만 이것이 정말 사실일까요? 이것은 사실이 아닙니다.

오늘은 Java 개발 엔지니어가 개발하는 것이 정확히 무엇인지에 대해 이야기하겠습니다. 정확히 말하면 Java 백엔드는 정확히 무엇을 하고 있나요?

 우리 모두는 Java가 백엔드 언어라는 것을 알고 있습니다. 백엔드는 일반적으로 서버에서 실행되는 서버를 의미합니다. 일반적으로 우리가 Java 프로그램을 실행하는 서버는 Linux 서버입니다.

 이 서버들은 보통 인터넷 회사의 컴퓨터실이라는 곳에 배치되어 있기 때문에 우리 같은 자바 프로그래머들의 코드는 대개 이런 컴퓨터실의 서버에서 실행됩니다.

자바 백엔드 소개

 Java에는 Android 에뮬레이터라고 생각하면 됩니다. 예를 들어 컴퓨터에 Android 에뮬레이터를 설치하면 Android 애플리케이션을 실행할 수 있습니다. , Android 에뮬레이터, 모바일 게임 등을 설치합니다.

 컴퓨터에 JDK라는 것을 설치하면 컴퓨터에 Java 런타임 환경인 JRE가 있습니다. 이 런타임 환경을 사용하면 Java 응용 프로그램을 실행할 수 있습니다.

 Java 프로그램이 컴퓨터에서 어떻게 실행되는지 알아본 후, 우리가 일반적으로 배우는 몇 가지 기본 Java 지식에 대해 이야기해 보겠습니다.

 사실 이러한 기본 Java 문법은 코드를 작성하는 데 필요한 몇 가지 기본 지식일 뿐이며, 이는 영어로 26자에 해당합니다. 일반적인 것에는 기본 유형 변수, for 루프 및 기타 기본 문법이 포함됩니다. 기본 지식이 있으면 매우 간단한 코드 작성을 시작할 수 있습니다.

자바 백엔드 소개

또한 Java에는 클래스 및 인터페이스와 같은 개념을 포함하여 객체 지향 기능과 같은 몇 가지 특별한 개념도 있습니다. Java가 이러한 기능을 도입하는 이유는 실제로 사용자가 더 나은 디자인, 추상 및 프로그래밍을 원하기 때문입니다.

초보자의 경우, 아주 깊게 이해할 필요는 없습니다. 왜냐하면 이런 것들은 실제로 코드를 작성한 후에만 점차적으로 이해할 수 있기 때문입니다.

 기본 지식에 대해 이야기한 후에는 Java에서 자주 언급되는 컬렉션 클래스가 무엇인지 궁금하실 것 같습니다. 실제 생활에서는 사용자 이름 목록과 같이 컬렉션 클래스를 사용해야 하는 시나리오가 많기 때문입니다. , 어떻게 저장하나요?

 이를 수행하려면 List를 사용하게 됩니다. 그렇죠? 따라서 컬렉션 클래스의 역할은 프로그래밍에서 데이터를 더 잘 저장할 수 있도록 하는 것입니다.

 사실 컬렉션 클래스의 개념은 데이터 구조에서 유래했습니다. 컴퓨터에는 파일 트리, 연결 목록, 배열 및 기타 구조와 같은 특수한 데이터 저장 구조가 많기 때문입니다. 따라서 컴퓨터 이론에서는 이러한 데이터 저장 모델을 일부로 추상화합니다. 공통 구조를 집합적으로 데이터 구조라고 합니다.

 그렇다면 Java에서 동시 프로그래밍은 무엇을 하는 걸까요? Java에서 멀티스레딩은 컴퓨터의 CPU 코어를 더 잘 활용하는 것입니다. 동시 프로그래밍을 통해 프로그램 동시성의 효율성을 높일 수 있습니다.

 그러나 동시 프로그래밍 뒤에는 운영 체제의 지원과 컴퓨터 하드웨어의 지원이 필요합니다. 따라서 멀티스레딩을 완전히 이해하려면 Java의 스레드나 스레드 풀을 이해하는 것만으로는 충분하지 않습니다. 운영체제와 컴퓨터 구성의 원리를 이해해야 한다.

 Java에도 네트워크 프로그래밍이라는 개념이 있습니다. 실제로는 TCP/IP 프로토콜을 기반으로 하는 API 집합이기도 합니다. program your 전송하려는 데이터가 네트워크 반대편으로 전송됩니다. 네트워크 프로그래밍과 동시 프로그래밍을 사용하면 Java 프로그래머는 많은 에너지를 얻습니다

자바 백엔드 소개

이런 점에 대해 이야기한 후 다음으로 이야기하겠습니다. 우리는 일반적으로 Java 백엔드 기술이 무엇인지에 대해 이야기합니다. Alipay를 예로 들어 보겠습니다. 과거에는 하나의 서버와 하나의 데이터베이스가 모든 비즈니스를 지원할 수 없었습니다.

Alipay 사용자가 늘어나면서 하나의 서버가 많은 사용자의 요구를 동시에 충족할 수 없어 여러 서버가 클러스터를 형성하기 시작했고 사용자는 로드 밸런싱을 통해 이러한 서버에 액세스할 수 있었습니다. , 각 사용자는 서로 다른 시스템에 액세스할 수 있으므로 전환 효과를 얻고 서버에 대한 부담을 줄일 수 있습니다.

데이터베이스는 데이터의 신뢰성을 보장해야 하기 때문에 특정 데이터베이스에 장애가 발생하고 백업이 없으면 데이터에 액세스할 수 없습니다. 이는 대규모 시스템에서는 허용되지 않으므로 데이터베이스 배포가 있습니다.

 그러나 실제로 비즈니스가 발전함에 따라 데이터베이스에 대한 부담도 커지고 있습니다. 따라서 활성 및 대기 배포로는 데이터베이스 액세스 성능 문제를 해결할 수 없으므로 하위 데이터베이스 및 하위 테이블을 수행해야 합니다. 활성 및 대기 데이터베이스를 기반으로 대용량 데이터가 포함된 테이블을 여러 테이블로 분할하고, 데이터베이스 요청을 다른 데이터로 전환합니다. 예를 들어, 100개의 하위 데이터베이스와 100개의 하위 테이블은 데이터를 분할하는 것과 같습니다. 테이블을 10,000개의 데이터시트로 변환합니다.

이때 또 다른 문제가 발생하는데, 하나의 데이터베이스에 다수의 스탠바이 데이터베이스가 있는데, 프라이머리 데이터베이스가 끊길 때 마스터-슬레이브 전환이 필요한 경우, 프라이머리 데이터베이스와 스탠바이 데이터베이스 간의 데이터가 일치하지 않을 수 있는데, 이 역시 이론이다. 분포. 연구 문제 중 하나는 비교적 복잡하므로 여기서는 생략하겠습니다.

방금 분산 기술에 대해 언급했습니다. 실제로 로드 밸런싱과 하위 데이터베이스 및 하위 테이블은 모두 분산 기술을 구현한 것입니다. 하위 데이터베이스 및 하위 테이블을 수행하지 않으려면 다른 방법으로 줄일 수 있습니다. 데이터베이스 액세스에 대한 압박감이 있습니까? 캐시를 사용하면 서버가 캐시에 먼저 요청을 보낼 수 있습니다. 캐시된 데이터는 일반적으로 메모리에 있으므로 액세스 속도가 매우 빠르며 이러한 요청은 데이터베이스를 통과할 필요가 없습니다.

자바 백엔드 소개

비즈니스가 발전함에 따라 캐시의 단일 지점 압력이 상대적으로 커지므로 분산 캐시가 나타납니다. 일반적으로 캐시는 동시에 데이터가 손실될 수 있으므로 데이터의 신뢰성을 보장할 수 없습니다. 데이터의 일부만 저장할 수 있으며 모든 문제를 해결할 수는 없습니다.

 따라서 일부 기업의 요청량이 매우 클 경우 캐싱만으로는 문제를 해결할 수 없습니다. 이때 메시지 대기열을 사용하여 대용량 동시 요청 문제를 해결할 수도 있습니다.

요청 메시지의 일부를 메시지 대기열을 통해 저장한 다음 서버의 요청 처리 능력에 따라 점진적으로 메시지를 꺼낸 다음 이러한 메시지를 점진적으로 처리하여 높은 동시성 문제를 잘 해결할 수 있습니다. . 물론, 전제는 메시지 대기열이 메시지 저장의 신뢰성을 보장해야 한다는 것입니다. 이는 대부분의 메시지 대기열이 보장하는 기능이기도 합니다.

Java 백엔드의 전반적인 모습에 대한 명확한 소개라고 할 수 있을 정도로 많은 이야기를 했습니다. 이 밖에도 언급하지 않은 내용이 너무 많아서 마무리하고 싶습니다. 하룻밤에 끝낼 수 없을 거예요.

  일반적으로 Java 백엔드 기술은 어렵지도 단순하지도 않습니다. 사실 각 기술 뒤에는 복잡한 구현 원리가 많이 있습니다. Java 백엔드 기술에 대한 전반적인 개념을 이해하는 데 도움이 될 것입니다.

위 내용은 자바 백엔드 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿