일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Resnet
- 크롤링 개발
- suricata
- C언어
- cloud
- rnn
- git
- 국가과제
- Docker
- 코딩도장
- Python
- LINUX MASTER
- Kubernetes
- Github
- 고등학생 대상
- Spring
- KAKAO
- Database
- colab
- Powershell
- Rocky Linux
- API
- GoogleDrive
- ChatGPT
- Spring Boot
- 인터넷의이해
- Machine Learning
- ICT멘토링
- VSCode
- OSS
- Today
- Total
코딩두의 포트폴리오
스프링 개념잡기 본문
1. 스프링은 FrameWork이다
'틀' 안에서 동작을 한다
2. 스프링은 오픈소스이다
공개된 소스를 사용하여 내부를 볼 수 있다 -> 내부를 뜯어고칠 수 있다
3. 스프링은 IoC 컨테이너를 가진다
Inversion of Controll -> 제어의 역전 -> 주도권이 스프링에게 있다!
ex)
Class - 설계도
class에는 abstract class가 있다(추상 클래스)
캐릭터는 추상적인 것이라 실체화가 불가능
Object - 실체화가 가능한 것
Instance - 실체화 된
-> 주도권이 스프링에 있다는 것은 내가 오브젝트를 직접 공유를 해서 heap이라는 메모리 공간에 올리게 되면 내가 직접 new를 하는 것
4. 스프링은 DI를 지원한다.
Dependency Injection(의존성 주입)
예전에는 개발자가 원하는 곳에 new를 하여 관리
-> 이제는 스프링이 스캔을 해서 오브젝트를 메모리에 띄웠기 때문에 이것을 'IOC'라 하고
내가 원하는 모든 클래스의 메소드에서 객체를 가져와 사용이 가능한 것을 'DI'라고 함
IOC, DI를 사용하면 프로그래밍 짜는 데 장점이 있음
5. 스프링은 엄청나게 많은 필터를 가지고 있다
요청에 대한 인증, 권한 체크 등을 하는 데 쓰임 / 필터를 문지기라 생각하면 편함
인터셉트 또한 필터와 비슷한 기능을 한다
6. 스프링은 엄청나게 많은 어노테이션을 가지고 있다 (리플렉션, 컴파일체킹)
Annotation(@) = 주석 + 힌트
Reflection = 분석하는 기법 -> 런타임 분석
어노테이션 또한 주석임
주석은 컴파일러가 무시
어노테이션의 주석은 컴파일러가 무언가를 체킹하도록 힌트를 주는 것
스프링에서 어노테이션을 통해 객체를 생성함
어노테이션 사용 시 코드의 가독성이 높아지고 재사용이 가능
어노테이션 사용 순서
1. 어노테이션 정의
2. 클래스에 어노테이션 배치
3. 코드 실행 중 Reflection을 이용 -> 추가 정보 획득하여 기능 실시
7. 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
중간데이터를 생성해야 함
ex) 자바 Object -> JSON -> 파이선 Object
이 자체의 역할을 하는 것을 MessageConverter라 함.
8. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.
데이터는 전기선에 의해 bit 단위로 전류가 흐름 / 1byte = 1bit
Byte Stream - Input Stream / Outpu Stream
@ResponseBody -> Buffered Writer
@RequestBody -> Buffered Reader
'Spring' 카테고리의 다른 글
Springboot 동작원리 (1) | 2024.07.02 |
---|