본문 바로가기

학습 기록/스프링 부트3 백엔드 개발자 되기[자바편]

(35)
[02장.2] 2. 빈과 스프링 컨테이너 스프링 컨테이너란? : 빈을 생성하고 관리 : 빈이 생성되고 소멸되기까지의 생명주기를 관리 빈이란? : 스프링 컨테이너가 생성하고 관리하는 객체 : 스프링의 객체 : 빈의 이름은 클래스 이름의 첫 글자를 소문자로 바꿔 관리 빈을 등록하는 방법 1) XML 파일 설정 2) 에너테이션 추가 등 @Component // MyBean 클래스를 빈으로 등록 public class MyBean{ }
[02장.2] 1. 제어의 역전(IoC)과 의존성 주입(DI) IoC (Inversion of Controller) : 제어의 역전 : 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져야 하는 것 [클래스 A에서 B 객체 생성] : 자바에서는 코드를 작성해 객체를 생성할 때 필요한 곳에서 바로 생성 진행 public class A{ b = new B(); } [스프링 컨테이너 객체 관리 방식] 제어의 역전(IoC)를 적용한다면 아래와 같은 코드의 형태로 바뀌며, 이전과 다르게 클래스 B 객체를 직접 생성하는 것이 아닌 어디서 받아와 사용하는 것으로 추측이 가능함 - 스프링은 스프링 컨테이너가 객체를 관리, 제공하는 역할을 진행 public class A{ private B b; // 코드에서 객체를 생성하지 않고 어디선가 받아온 객체를..
[02장.1] 스프링과 스프링부트 1. 스프링의 등장 엔터프라이즈 애플리케이션 : 대규모의 복잡한 데이터를 관리하는 애플리케이션으로 사용자의 요청을 동시에 처리해야 하기에 서버 성능과 안정성, 보안이 매우 중요 스프링 프레임워크는 엔터프라이즈 애플리케이션에서 필요한 서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구 2. 스프링을 더 쉽게 만들어주는 스프링 부트 스프링은 장점이 많은 개발 도구이지만 설정이 매우 복잡하기에 스프링 부트를 출시 스프링 부트는 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구로, 빠르게 스프링 프로젝트를 설정할 수 있고 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리 가능 하여, 비즈니스 로직 개발에만 집중할 수 있도록 만들어주는 도구 스프링 부트 주요 ..
[01장.6~7] 백엔드 프로그래밍 언어 및 자바 애너테이션 프로그래밍 언어 - 자바/코틀린 : 스프링, 스프링 부트라는 프레임워크를 기반으로 많은 곳에서 서버 개발에 이용 - 파이썬 : 데이터 분야에서 많이 사용하지만 서버 개발에서도 사용하며, 대표적인 프레임워크는 플라스크와 장고, FastAPI가 존재 - 자바스크립트/타임스크립트 : 프론트엔드 뿐 아니라 백엔드에서도 많이 사용하며, 대표적인 프레임워크로 익스프레스, NestJS가 존재 - go - 러스트 - C++ : 게임 서버 개발에서 많이 사용 - C# : 닷넷 프레임워크가 매우 강하며, 마이크로소프트 계열의 소프트웨어와 호환성이 높으며, 스택어버플로우 사이트가 C#을 기반으로 만들어짐 자바 애터네이션(Java Annotation) : 자바로 작성한 코드에 추가하는 표식 : @ 기호를 사용하며 JDK 1...
[01장.5] 백엔드 개발자의 업무 개발자 업무 순서 1) 과제 할당 2) 과제 분석 3) 개발 4) 테스트(리뷰) 5) QA 및 버그 수정 6) 배포 7) 유지보수 1) 과제 할당 : 사업부, 마케팅, 개발팀 등에서 개발 과제를 할당하며, 개발자는 그 과제를 분석하기 시작함 2) 과제 분석 : 주어진 과제가 무엇을 의미하고, 어떤 조건이 필요한지, 해당 조건들을 수행하기 위해 어떤 데이터를 저장해야 하는지를 결정 : 제공할 성능과 사용할 기술을 검토하고, 문제가 있을 경우 해결 방법도 분석 및 정리 * 요즘의 서비스는 복잡하기 때문에 작은 기능에서의 문제가 서비스 전체의 문제로 이어질 수 있기에 중요한 과정 중 하나 3) 개발 : 기능을 개발하고 버그를 수정함 : 개발 코드는 깃허브 등의 프로그램을 사용해 동료의 리뷰를 받고 리뷰에 대한..
[01장.4] 라이브러리와 프레임워크 라이브러리(library) : 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음으로 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위해 코드의 모음을 가져다 쓸 수 있는 도구의 역할 : 도서관이라는 의미 보다는 책들의 모음이라고 이해 : 라이브러리는 독립적으로 라이브러리끼리 영향을 주지 않음 프레임워크(framework) : 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경 : 정해진 틀에서 개발해야 한다는 단점이 존재하지만, 개발 효율은 매우 높다는 장점 존재 라이브러리와 프레임워크 차이 : 프레임워크는 애플리케이션을 개발할 때의 전체적인 구조를 잡기 위해 사용하는 것이며, 라이브러리는 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용
[01장.3] 아이피와 포트 아이피(IP) : 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소로 아이피를 알면 서버를 찾을 수 있음 : 단, 서버를 찾더라도 아이피만 가지고 서버를 이용할 수는 없음 포트(Port) : 서버에서 운용되고 있는 서비스를 구분하기 위한 번호로 서버를 찾을 수 있는 번호 ex1) 아이피는 백화점, 포트는 백화점 내에 입점해 있는 매장을 의미 ex2) 우리가 흔히 사용하는 웹 브라우저 주소(https://www.naver.com)에는 아이피와 포트가 들어 있음 (https://는 서버의 443번 포트를 사용하기 위함, www.naver.com은 은 아이피를 쉽게 알아보기 위해 이름을 붙인 것)
[01장.2] 데이터베이스 데이터베이스(Database) : 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소 * 보통 MySQL, 오라클, 프스트그레SQL을 DB(데이터베이스)라고 하지DBSM로서 DB를 관리하기 위한 데이터베이스 관리 시스템을 의미함 관계형 데이터베이스 (Relational Database; RDB) : 데이터를 행(Row)과 열(Column)로 이루어진 테이블로 관리 : 기본키(Primary Key; PK)를 사용해 각 행을 식별 : 각 테이블 간의 관계(Relation)를 지을 수 있음 : 데이터의 저장, 질의, 수정, 삭제가 용이하지만 성능을 올리기 쉽지 않음 * RDB로 유명한 DB로는 오라클, MySQL, SQL 서버, 포스트그레SQL이 존재 SQL(Struc..