2. 리액트의 코드

프로젝트 생성 및 실행

  • node.js, npm, yarn 설치
    • node.js는 당장은 필요없지만, 설치시 npm이 함께 설치된다
    • npm은 패키지매니저 도구
    • node.js 설치 후, node.js의 cmd창 실행
    • npm 설치 확인
      • 명령어 : npm -v
    • yarn 설치 (패키지 관리자 도구)
      • 설치 명령어 : npm install –global yarn
      • 설치 확인 : yarn –version
  • 코드에디터 설치 (Visual Studio Code)
    • 설치 후 좌측 확장팩 설치 메뉴 이용
    • ESLint 설치
    • Reactjs code Snippets 설치
    • Prettier-code formatter 설치
    • Koran Language Pack for Visual Studio Code 설치
      • f1 누른 후 Configure Display Language 입력
      • ko로 설정 후 재시작
  • 프로젝트 생성 및 실행
    • node.js cmd 혹은 vscode의 터미널창
    • 프로젝트를 만들 디렉토리로 이동
    • 프로젝트 생성 명령어 입력
      • yarn create react-app 프로젝트명
    • 프로젝트 생성 후 해당 디렉토리에서 실행명령어 입력
      • npm start

Continue reading

1. 리액트란

개요

  • 자바스크립트의 발전
    • 자바스크립트 만으로 대규모 어플리케이션을 만들 수 있게 됨
  • 구조관리의 발전 필요
    • 이를 해결하기 위해 수많은 프레임워크 출시
      • 앵귤러,뷰js 등
    • 해당 프레임워크는 주로 MVC, MVVM 아키텍쳐 사용
      • 모델과 뷰가 있다는 공통점
    • 보통 사용자가 어떤 작업을 하면, 변경사항을 뷰에 반영
      • 반영하는 과정에서 뷰를 변형(mutate)
      • 페이스북 개발팀은 뷰를 변형하는 것이 아닌, 새로 렌더링하는 방식 고안
        • 리액트

Continue reading

4. crypto 간소화

  • ARIA 블록암호 알고리즘 기반 암복호화 설정 간소화
  • 내부적으로 필요한 설정 보유, XML Schema를 통해 필요 설정 추가 가능
  • globals.properties 설정파일의 중요정보를 암복호화 처리 가능
    • url, username등
  • properties 파일에 암호화 데이터 설정 후 #(…} 표현식으로 복호화 가능
    • #{egovEnvCryptoService.decrypt(‘…’)}

Continue reading

2. security

용어

  • 접근주체 / Principal : 보호된 리소스에 접근하는 대상
  • 인증 / Authentication : 접근주체에 대해 누구인지, 어플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정
  • 인가 / Authorization : 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정
  • 권한 / Authority :
    • 어떤 리소스에 대한 접근 제한
    • 모든 리소스는 접근 제어 권한이 걸려있다
    • 인가과정에서 해당 리소스에 대한 제한된 최소한의 권한을 가졌는지 확인

Continue reading

1. 전자정부 표준 프레임워크

적용기준

아키텍쳐 규칙

  • Annotation 기반 Spring MVC 준수
    • @Controller 및 @RequestMappin을 통한 URL mapping 활용
    • view와 model 부분을 controller를 통해 분리
  • Annotation 기반 layered architecture 준수
    • 화면처리, 업무처리, 데이터처리 부분에 대하여 각각 @Controller, @Service, @Repository 활용
  • 업무처리를 담당하는 서비스클래스는 EgovAbstractServiceImpl을 확장하고 업무에 대한 특정 인터페이스 구현
  • 데이터 처리를 담당하는 DAO 클래스(@Repository)는 EgovAbstractDAO 또는 EgovAbstractMapper를 상속
    • EgovAbstractDAO : iBatis
    • EgovAbstractMapper : MyBatis
    • Hibermate/JPA 적용시에는 예외, 데이터처리 규칙 참조

Continue reading

1. 스프링부트란

  • 스프링 프레임워크의 복잡한 설정을 간편하게 할 수 있는 서브프로젝트
  • 웹컨테이너를 내장하고 있어 최소한의 설정으로 쉽게 웹 어플리케이션 제작 가능
  • 특징
    • templates 폴더 자동 생성
      • 스프링
        • 기존의 스프링은 HTML내에 자바코드를 삽입하는 방식의 JSP 사용
        • 디렉터리의 위치도 웹 디렉토리에 해당하는 src/main/webapp 안에 존재
        • 위 방식은 war파일로 패키지화했을 경우에만 정적리소스를 정상적으로 사용 가능
      • 스프링부트
        • src/main/resources 디렉터리 내 화면과 관련된 파일 관리
    • static 폴더 자동 생성
      • css, fonts, images, plugin, scripts 등의 정적 리소스 파일이 위치
    • application.properties
      • 해당 파일은 웹 어플리케이션 실행 시 자동으로 로딩
      • 각각으로 분리되어있는 xml 또는 자바 기반의 설정을 해당 파일에서 key-value 형직으로 지정 처리 가능

Continue reading

7. 매퍼 어노테이션

  • 기존 스프링에서는 DAO 클래스에 @Repository 선언
    • 해당 클래스가 DB와 통신하는 클래스임을 명시
  • 마이바티스의 매퍼 어노테이션 지정 시, XML mapper에서 메서드의 이름과 일치하는 SQL문을 찾아 실행
    • mapper 영역은 DB와 통신, SQL쿼리를 호출하는 것이 전부이며 로직은 필요하지 않다

Continue reading

5. 동적SQL

  • 동적 SQL을 만들기 위해 마이바티스가 제공하는 XML 엘리먼트
    • if
    • choose(when, otherwise)
    • trim(where, set)
    • foreach
  • OGNL 표현식 사용
    • jsp의 JSTL표현식이 OGNL
    • Object Graph Navigation Language
    • 프로퍼티의 값을 가져오거나 설정하기 위한 언어

      <c:if test=”${obj.val!=null}”>

    • 기본 문법
    • coment 객체의 userid 필드 : comment.userid
    • 현재 객체의 hashcode()메서드 호출 : hashCode()
    • 댓글 배열(comments)의 첫번째 인덱스 값 : comments[0]

Continue reading

2. 마이바티스 사용 예

마이바티스 설정

  • mybatis-config.xml
  • 설정파일은 getConnection 메서드의 데이터베이스 연결정보를 대체한다
    • 트랜잭션 관리자
      • JDBC 코드를 대체하기 때문에 type은 JDBC로 지정
    • 데이터베이스 설정
      • 데이터베이스 연결 정보를 설정
    • 매퍼 정보 설정
      • sql을 선언해둔 xml이나 인터페이스 형태의 매퍼 위치를 지정
      • xml의 위치는 클래스패스를 기준으로 지정

Continue reading

1. 마이바티스란

  • JDBC를 대체하는 퍼시스턴스 프레임워크
  • 내부적으로 JDBC API를 사용
    • 개발자가 직접 JDBC를 사용할 때의 중복작업을 대부분 자동화
  • SQL을 별도의 XML이나 어노테이션으로 정의
    • SQL의 관리가 편리
  • 특징
    • JDBC를 작성할 때의 try/catch 구문 사용 불필요
    • 객체 프로퍼티를 Prepared 구문의 파라미터로 자동 매핑
    • 조회결과를 객체로 자동 매핑
    • 트랜잭션 관리
    • 데이터 매퍼
      • 객체와 DB, 매퍼 자체를 독립적으로 유지하면서, 객체와 DB간 데이터 이동
      • VO에 해당하는 부분이 SQL 구문에 매핑
      • SQL 실행결과도 VO로 매핑
        • 일일이 ResultSet으로 꺼낼 필요가 없다

Continue reading

6. MVC

스프링의 주요 구성요소

  • DispatcherServlet
    • 클라이언트의 요청을 전달
    • 컨트롤러에게 클라이언트의 요청을 전달
    • 컨트롤러가 리턴한 결과값을 view에게 전달
  • HandlerMapping
    • 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정
  • Controller
    • 클라이언트의 요청을 처리
    • 결과를 DispatcherServlet에 전달
  • ModelAndView
    • 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다
  • ViewResolver
    • 컨트롤러의 처리 결과를 생성할 뷰를 결정
  • View
    • 컨트롤러의 처리결과 화면을 생성. JSP 등

Continue reading

Pagination