교육내용을 잊어버리기 전에 다시 정리합니다.


Spring - 2.txt



1. 하드웨어 성능향상에 따른 개발론


   - 요즘 하드웨어가 좋기때문에 성능이슈보다 유지보수확장성에 집중하여 개발한다.

      (예전 성능이슈때문에 유행했던 알고리듬이 요즘 다시 곽광받고 있는 이유는 AI와 빅데이터 때문이다.) 



2. XML은 플랫폼 독립적으로 동작한다.


    A. XML

       

       - Extensible Markup Language의 약자로, 마크업 언어를 정의하기 위한 언어, 확장이 가능한 언어이다.


    B. HTML과의 비교

   

       - HTML과 흡수한 Markup language이지만 Tag를 정의할 수 있고 데이터를 기술할 수 있는 마크업 언어이다.

         XML은 데이터가 무엇인지에 초점을 맞춰 데이터를 기술하기 위해 고안되었고

         HTML은 데이터가 어떻게 보일지에 초점을 맞춰 데이터를 표시하기 위해 고안되었다.


     C. 탄생배경

  

        - XML이란 전자적으로 데이터를 교환하기 위한 표준이다. HTML의 한계를 극복하고 SGML의 복잡함을 해결하는

          방안으로써 탄생하였다.


        - 웹 상에서 구조화된 문서를 전송 가능하도록 설계된 표준화된 텍스트 형식의 마크업 언어로써 인터넷에서 바로

          사용가능한 문서를 표현하는 표준이다.


     D. 특징


        - 기존 웹의 인터넷 기반 프로토콜, 매커니즘과 함께 사용할 수 있다.


        - 언어에 대해 독립적이고 여러 Application을 사용 가능하도록 지원한다.


        - 사용자 정의 태그를 사용한다. 때문에 정보 교환이 용이하다.


        - 문서 재사용이 가능하다.


        - 웹에서 정보 교환이 가능하다.


        - 자료의 표현과 내용이 분리되어있어 정확한 검색이 가능하고 교환에 용이하다.



        XML은 어떠한 데이터를 설명하기 위해 이름을 임의로 지은 태그를 데이터로 감싼다.


출처 : https://asfirstalways.tistory.com/98



3. XML - JSON - YAML - CSV 언제 사용하고 어떤걸 선택해야 하는가?



출처 : https://stackoverflow.com/questions/34723651/xml-json-yaml-or-csv-for-storing-articles-on-server



4. IDL이란??


인터페이스 정의 언어 (Interface  Description Language 또는 Interface Definition Language, IDL)는 소프트웨어 컴포넌트의

인터페이스를 묘사하기 위한 명세 언어이다. IDL은 어느 한 언어에 국한되지 않는 언어중립적인 방법으로 인터페이스를

표현함으로써, 같은 언어를 사용하지 않는 소프트웨어 컴포넌트 사이의 통신을 가능하게 한다. 예를 들면, C++을 사용하여

작성한 컴포넌트와 자바를 사용한 컴포넌트 사이에서 국한되지 않고, 인터페이스를 묘사하는 개념이다.


<IDL의 특징>


  - IDL은 특정 언어에 독립적인 인터페이스 정의 언어이다. 따라서, 구현 언어가 아닌 정의 언어이며, 구현언어로의 매핑을

    지원한다.


  - IDL은 객체지향 개념을 기초로 하고 있으며, 다중상속 및 동적 호출 매커니즘을 지원한다.



출처 : https://blog.naver.com/neos_rtos/30185472655



5. GOF디자인 패턴에 대한 내용 (Spring은 많은 디자인 패턴을 내포하고있다.)



출처 : https://gmlwjd9405.github.io/2018/07/06/design-pattern.html





6. 클래스 다이어그램 내용 정리 (개발자들과의 의사 소통을 위해 필수로 익혀야한다.)



출처 : https://gmlwjd9405.github.io/2018/07/04/class-diagram.html




7. Spring AOP에 적용된 Proxy


d스프링은 프록시를 이용하여 AOP를 구현합니다. 스프링은 Aspect의 적용대상이 되는 객체에 대한 프록시를 만들어

제공합니다. 비즈니스 로직에 접근할 때 대상 객체로 바로 접근하는게 아닌 프록시를 통해서 간접적으로 접근하게 됩니다.

이 과정에서 프록시는 공통 기능을 실행한 뒤 대상 객체의 실제 메서드를 호출한 후에 공통 기능을 실행합니다.

                                           


출처 및 참고 : https://minwan1.github.io/2017/10/29/2017-10-29-Spring-AOP-Proxy/

                   https://jojoldu.tistory.com/71




<AOP에 대한 필기 내용>


app.xml에서 aop를 정의할 때 return값, 메소드명, 파라미터는 생략할 수 없다.

     ( ex. execution(* search(int)) ) ==> 해당 메소드가 보이면 무조건 aop를 적용시킨다.

                        - * : return value

                        - search : mthod name

                        - int : prameter name



annotation으로 AOP를 설정하려면  app.xml에 <aop:aspectj-autoproxy/> 를 입력해야한다.






8. @Autowired는 @Component를 상속하고 있는가?


상속받지 않습니다. 둘은 다른 개념입니다.


@Component

@Service

@Repository

@Controller

등의 spring stereo type @Annotation 이 붙은 클래스들은 

스프링 어플리케이션이 기동될 때 자동으로 검색되어 객체가 생성되고, 스프링에 의해 관리됩니다.


@Autowired 는 스프링에 의해 관리되고 있는 빈 객체를 스프링이 알아서 주입해달라는 용도입니다.



출처 : https://okky.kr/article/357029



+ Recent posts