본문 바로가기

네이버클라우드/JAVA 웹 프로그래밍138

JAVA 47일차 (2023-07-27) 자바 프로그래밍_52. Mybatis SQL-mapper 프레임워크 사용하기_Board_개인프로젝트 - 마트 관리 시스템 ## 52. Mybatis SQL-mapper 프레임워크 사용하기 - mybatis 프레임워크의 구동 원리 및 사용법 ㄴ MySQLBoardDao.java, MySQLItemDao.java, MySQLMemberDao.java 파일을 bitcamp.report.dao 패키지로 이동시킴 ㄴ 드래그 & 드랍 => => ㄴ bitcamp-study > report > app-server > src > main 위치에 resources 폴더 추가 ㄴ bitcamp-study > report > app-server > src > test 위치에 resources 폴더 추가 => ㄴ gradle 재설정 => => ㄴ 이 폴더들 git 에 커밋할 때 빈 폴더여서 커밋이 안됐었음 => 임의의 파일을 생성해주자 ex) .. 2023. 7. 27.
JAVA 46일차 (2023-07-26) 자바 프로그래밍_51. DB 커넥션 풀을 이용한 Connection 재사용하기_개인프로젝트 - 마트 관리 시스템 ## 51. DB 커넥션 풀을 이용한 Connection 재사용하기 - 여러 스레드에서 DB 커넥션 객체를 공유할 때의 문제점 이해 - ThreadLocal을 이용하여 스레드 전용 변수를 만드는 방법 - 풀링 기법을 이용하여 커넥션 재사용하는 방법 여러 스레드에서 DB 커넥션 객체를 공유할 때의 문제점 이해 ㄴ 필요 없는 클래스 제거하여 정리 ㄴ DataSource 라는 이름의 클래스 파일을 생성 DataSource.java ㄴ DB 커넥션을 관리하고 제공하며, 스레드 별로 DB 커넥션을 보관하도록하는 DataSource.java 클래스 파일 작성 => DataSource.java ㄴ 생성자 추가 ThreadLocal을 이용하여 스레드 전용 변수를 만드는 방법 DataSource.java ㄴ Thread.. 2023. 7. 26.
JAVA 45일차 (2023-07-25) 자바 프로그래밍_50. Application Server 아키텍처로 전환하기_개인프로젝트 - 마트 관리 시스템 ## 50. Application Server 아키텍터로 전환하기 - 애플리케이션 서버 아키텍처의 특징과 구현 - Executor를 이용하여 스레드를 풀링하기 애플리케이션 서버 아키텍처의 특징과 구현 ㄴ 폴더에 남아있던 app-server 삭제하기 => => ㄴ app-client 를 복사해서 붙여넣은 후 app-server 라는 이름으로 변경해주기 ㄴ build.gradle 스크립트 파일에서 application 의 mainClass 를 ClientApp -> ServerApp 으로 변경해주기 ㄴ eclipse 프로젝트 이름 설정하는 부분에서 project의 name 을 report-client -> report-server 로 변경해주기 ㄴ gradle 재설정 => => => ㄴ report-serv.. 2023. 7. 25.
JAVA 44일차 (2023-07-24) 자바 프로그래밍_49. 로그인 적용하기_개인프로젝트 - 마트 관리 시스템 ## 49. 로그인 적용하기 - 로그인을 구현하는 방법 - 로그인 정보를 가지고 관련 데이터를 다루는 방법 ㄴ MemberAddListener.java 파일을 복사하여 LoginListener 라는 이름의 클래스를 생성함 ddl2.sql ㄴ member 테이블에 phone 컬럼을 unique key 로 설정하기 => 전화번호로 로그인을 하기 위함 ㄴ ddl2.sql 에 따라 테이블 구조를 변경함 ㄴ phone 컬럼이 unique key 로 설정됨을 확인할 수 있음 LoginListener.java ㄴ 이름 받는 부분을 제거 => 전화번호를 이용하여 로그인 하기 때문 LoginListener.java ㄴ 관리자와 일반직원 구분을 입력받을 필요 없으므로 제거 LoginListener.java ㄴ 전화번호와 .. 2023. 7. 24.
JAVA 44일차 (2023-07-24) 자바 프로그래밍_48. 외부키(Foreign Key) 사용하기_개인프로젝트 - 마트 관리 시스템 ## 48. 외부키(Foreign Key) 사용하기 - 외부키를 설정하고 사용하는 법 - 조인을 이용하여 외부 테이블의 값을 가져오는 방법 ㄴ ddl.sql 을 복사하여 ddl2.sql 생성 ddl2.sql ㄴ writer 를 int 타입으로 변경 ddl2.sql ㄴ 해당 코드 제거 후 아래처럼 테이블 내에 category 를 추가해줌 ddl2.sql ㄴ category 컬럼을 추가 ddl2.sql ㄴ 게시판 작성자에 대해 외부키 설정 ㄴ 존재하는 테이블 삭제 => 테이블 재생성 ㄴ report_board 테이블 생성 ㄴ report_member 테이블 생성 ㄴ 게시판 작성자에 대해 외부키 설정해주기 생성한 테이블 확인 ㄴdata.sql 복사하여 data2.sql 생성 data2.sql ㄴ 암호는 sha.. 2023. 7. 24.
JAVA 44일차 (2023-07-24) 자바 프로그래밍_47. SQL 삽입 공격 차단하기_개인프로젝트 - 마트 관리 시스템 ## 47. SQL 삽입 공격 차단하기 - SQL 삽입 공격의 원리 이해 - PreparedStatement 사용법 - 테이블에 암호를 저장하는 방법: SHA1() 함수 사용법 PreparedStatement 사용법 MySQLMemberDao.java ㄴ PreparedStatement 이용하기 ㄴ SQL 문을 prepareStatement 에 넣어줌 MySQLMemberDao.java ㄴ setXxx() 할 때 번호는 0부터가 아닌 1부터 시작임 => ㄴ executeUpdate() 안에는 이제 아무것도 안 넣어도 됨 MySQLMemberDao.java ㄴ list 메서드도 insert 메서드와 동일하게 작업해주기 => 입력은 받지 않으므로 in-parameter 인 ? 와 executeUpdate 메.. 2023. 7. 24.