[TIL] 20210106

vednuegnuoy·2021년 1월 6일
0

TIL

목록 보기
17/31

💡 오늘 한 일

  • Baekjoon 단계별 알고리즘 8단계(기본 수학 1)

    • 문제 10250 > ACM 호텔 풀이
      호텔 방 번호의 규칙을 찾아 출력하는 문제

      풀고 난 뒤 더 효율적이게 구현 할 방법도 있을 것 같아 다른 방법의 코드도 검색해봤는데 나눗셈과 나머지 공식을 이용해 더 간단한 코드를 구현 할 수도 있었다.
      이와 같은 방법으로 풀어보기 👉🏻 [참고] 검색해본 다른 코드 풀이


  • 코드로 배우는 스프링 웹 프로젝트
    [Part1] 스프링 개발 환경 구축 - ③ 스프링의 Oracle Database 연동 📒p.71-88

    • 오라클 설치 (이전에 설치된 상태)
      관계형 데이터베이스인 Oracle 11g XE(이하 오라클)를 이용
    • SQL Developer 설치 (이전에 설치된 상태)
      • SQL Developer를 이용하여 예제에 사용 할 계정 생성
        접속 이름 : Book
        사용자 이름 : book_ex
        ※ 비밀번호는 사용자 이름과 동일
    • 프로젝트의 JDBC 연결
      • sqldeveloper 설치 경로에 jdbc/lib 폴더에 JDK 8버전용 ojdbc8.jar 파일을 찾아
        프로젝트 설정에서 Libraries에 ojdbc8.jar 파일을 추가해 준다.
    • 커넥션 풀(Connection Pool) 설정
      • 일반적으로 여러 명의 사용자를 동시에 처리해야 하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용 할 때 사용
      • Java에서는 DataSource라는 인터페이스를 통해 커넥션 풀을 사용
      • 종류에는 spring-jdbc 라이브러리 이용, HikariCP 등이 있음
        예제는 HikariCP를 이용하여 진행

    [Part1] 스프링 개발 환경 구축 - ④ MyBatis와 스프링 연동 📒p.89-105

    • MyBatis

      • 흔히 'SQL mapping 프레임워크'로 분류되며, 기존의 SQL을 그대로 활용할 수 있는 장점과 진입장벽이 낮은 편이라 복잡한 JDBC의 대안으로 많이 사용

        전통적인 JDBC 프로그램과 MyBatis 비교

                   JDBC 프로그램            MyBatis
        직접 Connection을 맺고 마지막에 close()자동으로 Connection close() 가능
        PreparedStatement 직접 생성 및 처리MyBatis 내부적으로 PreparedStatement 처리
        PreparedStatement의 setXXX() 등에 대한 모든 작업을 개발자가 처리#{prop}과 같이 속성을 지정하면 내부적으로 자동 처리
        SELECT의 경우 직접 ResultSet 처리리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리
      • MyBatis 관련 라이브러리 추가

      • SQLSessionFactory
        MyBatis에서 가장 핵심적인 객체 = SQLSession, SQLSessionFactory
        SQLSessionFactory는 내부적으로 SQLSession이라는 것을 만들어 내는 존재
        SQLSession을 통해 Connection을 생성하거나 원하는 SQL을 전달하고 결과를 리턴받는 구조로 작성

    • 스프링과의 연동 처리
      • Mapper
        SQL 과 그에 대한 처리를 지정하는 역할
        MyBatis-Spring을 이용하는 경우 Mapper를 XML과 interface+annotation의 형태로 작성
        Mapper 인터페이스를 이용해서 실제 SQL 처리가 되는 클래스를 자동으로 생성해 줌
        따라서 인터페이스와 SQL만 작성하는 방식으로 모든 JDBC 처리가 가능

    • log4jdbc-log4j2 설정
      SQL 로그를 제대로 보기 위한 라이브러리

  이것으로 Part1 마무리❕ 스프링 개발 환경 구축 완료
  내일부터 스프링 MVC 설정에 대해 공부하자

💬느낀점

오늘 알고리즘 풀이를 하면서 코드 작성 시 효율적이고 가독성 있는 코드 작성하도록 노력하기!
라는 생각을 한번 더 하게 됐다.

🔔 내일 할 일

  • Baekjoon 단계별 알고리즘 8단계
  • 코드로 배우는 스프링 웹 프로젝트
    • Part2 진행

0개의 댓글