Home - oneso123456789/2022 GitHub Wiki

Wiki 내용 velog로 이전하고 내용 정리 및 보완하기

스프링의 3대 요소

IOC/DI를 묶어서도 많이 정리하지만 따로 했음

스프링 ioc(inversion of control):

간단히 말해서 객체의 제어권(빈의 생성과 관계설정, 사용, 제거등의 작업)이 개발자(코드)에서 스프링 컨테이너(IoC 컨테이너)로 넘어간것을 말함

장점은 개발자의 부담이 줄어서 핵심 로직에 집중할수있다는점임

스프링 DI(Dependency Injection):

객체 사이의 의존 관계를 외부에서 결정하고 주입하는것임

장점은 주입받는 대상이 변하더라도 그 구현 자체를 수정할 일이 없어 재사용이 높은 코드가 됨

스프링 PSA (Portable Service Abstraction):

일관성 있는 서비스 추상화
대표적으로 JDBC가 존재함
어떠한 DB를 사용하더라도 공통된 방식으로 코드 작성

Spring AOP (Aspect - Oriented Programming):

관점 지향 프로그래밍이며
어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고
그 관점을 기준으로 각각 모듈화 하겠다는 것임
(모듈화는 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말함)

장점은 각 로직에서 로깅, 트랜잭션과 같은 반복되는 기능을 모듈화 해서 재사용할수있음 OOP를 더 잘 구현가능   AOP를 사용하여 로깅,트랜잭션 관리, 시큐리티 에서의 적용 등 AspectJ와 같이 완벽하게 구현된 AOP와 통합하여 사용 가능함

출처

코드로 배우는 스프링 웹 프로젝트
https://steady-coding.tistory.com/600#
https://guy-who-writes-sourcecode.tistory.com/40
https://engkimbs.tistory.com/746

요즘 느끼는 건대 알고리즘 능력을 키우는게 책에서 웹 로직 공부보다 더 중요한거 같음
코딩 테스트 문제 연습 백준 or 코드업
협업 프로그램 노션 or 슬랙 숙지

github를 이용해서 최대한 코드 리뷰를 해주려고 노력하고 받으려고 노력하자

문제를 해결할때 상황마다 적합한 방법은 있지만 틀린 방법은 없다