ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해99 4주차 WIL
    카테고리 없음 2022. 6. 5. 22:16

    Weekly I Learned

    5/30 ~ 6/2 : 주특기 숙련(Spring)

    6/3 ~ 6/5 : 주특기 심화(Spring)


     주특기 숙련기간의 과제는 회원가입, 로그인 및 댓글 기능을 구현하는 것이였으나, 개인적으로는 인증 및 인가에 대한 개념을 익히고 서비스를 제공할때 두 개념을 어떻게 활용하는가를 익히는 시간이 아니였나 생각한다. 또한, 스프링 시큐리티라는 스프링 내부의 프레임워크를 사용하였는데 현재의 나로는 이해하기 쉽지 않았다. 

    심화 주차는 JAVA의 ORM인 JPA를 적극적으로 활용하는 기간으로 생각된다. DB활용을 위한 밑거름이 되는 시간이 될 듯하다.

     

    핵심 키워드

    ORM? (Object Relational Mapping)

      ORM이란? 객체와 관계형 데이터베이스를 자동으로 매핑해주는 것을 말한다.  

    개발의 패러다임이 객체지향 중심으로 변하는 중이나 여전히 데이터 관리를 관계형 DB에서 하다 보니 객체 지향의 특징을 살리지 못하거나, 특징을 살리기 위해 SQL Mapping에 너무 많은 시간을 투자하게 되어 ROI(Return On Investment)가 굉장히 떨어지게 된다.

    ORM의 장점으로는 객체 지향적인 코드로 인해 더 직관적이며 서버 개발자가 비즈니스 로직에 더 집중 할 수있게 해준다. 그리고 재사용 및 유지보수가 편리하며 DBMS에 대한 종속성이 줄어든다.

    단점으로는, ORM으로만 서비스를 완벽하게 구현하기가 어려우며 프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하기가 어렵다.


    noSQL(Inversion of Control)

      보통 non SQL 또는 non only SQL의 약자로 알려져있으며 전통적인 관계형 데이터베이스(RDB) 보다 덜 제한적이며, 현대적인 애플리케이션 구축을 위한 유연한 스키마를 갖추고 있다. 개발의 용이성, 기능성 및 확장성을 널리 인정받고 있다.

     데이터의 액세스 및 관리를 위해 다양한 데이터 모델을 사용하고 이러한 데이터베이스 유형은 큰 데이터 볼륨, 짧은 지연 시간과 유연한 데이터 모델이 필요한 애플리케이션에 최적화되어있다.

    NoSQL에서는 레고드를 문서(documents)라고 부르며, 문서는 Json과 비슷한 형태를 가지고 있다. 관계형 데이터베이스처럼 여러 테이블에 나누어 담지 않고 관련 데이터를 동일한 컬렉션에 넣는다.

     


    SQL(Structured Query Language)

    관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 

    관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었으며, 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.

    SQL의 문법은 크게 3가지 종류로 나누어진다

    • DDL(Data Definition Language : 데이터 정의어)
      각 릴레이션을 정의하기 위해 사용하는 언어
    • DML(Data Manipulation Language : 데이터 조작 언어)
      데이터 관리를 위한 언어
    • DCL(Data Control Language : 데이터 제어 언어)
      관리하고 접근하는 권한을 다루기 위한 언어

     

    참고자료

     

    주간 마무리

     역대급 난이도의 개인과제가 주어진 한주였던 것으로 생각된다. 다행이도 실력이 출중한 팀원들을 만나 뒤쳐지지 않고 이겨냈던 한 주 였다. 보안이란 분야가 중요한 만큼 어려웠었지 않나?라는 생각과 아직 코드를 분석하고 이해하는 능력이 부족하다는 생각이 함께 들었다. 스스로 코드를 작성하는 능력은 분명 중요하다. 그리고 그에 못지않게 다른사람들이 작성한 코드를 이해하는것도 중요하다는 생각을 하였다. 결국 많이 보고 많이 써보는게 답이다.

     

    댓글

Designed by Tistory.