728x90

JAVA 109

연산자

삼항연산자: 조건이 참이면 전자, 거짓이면 후자 a>b? a:b a가 b보다 크면 a 를 선택 증가, 감소 연산자 : 변수의 값을 1식 증가, 감소 시키는 단항 연산자 --a; ++a; //전위, a의 값 1감소/1증가 - a의 값 사용 a--; a++; // 후위 연산자 a의 값 사용 후 a의 값 감소, 증가 int x=10; System.out.println(--x); //print10 /9 System.out.println(x++);// 9 /10 System.out.println(x--);//10 /0+9 System.out.println(++x); //10/ 10 System.out.println(x);//10 키보드로부터 입력을 받고싶다면 Scanner Scanner sc = new Scann..

객체와 클래스, 배열

객체 데이터: 여러 개의 변수로 이루어진 데이터. Ex) 책의 구성 요소 제목, 출판사, 저자,, 가격 등 책이라는 데이터는 하나의 변수로 나타낼 수 없다. 책 한권을 나타낼 변수를 선언해보자 Book b; Book 안에는 title, price, company, author, page, isbn변수가 들어있다. 이를 하나의 구조로 만들어야 하는데 이를 설계하는 도구를 class 라고 한다. class 란, 새로운 자료형을 만드는 = 설계하는 = 모델링하는 도구이다. public class BookDTO { public String title; public int price; public String company; public String author; public int page; public Str..

자바 기초: 컴파일? 빌드? JDK? JRE? JVM?

컴파일한다. : 소스코드를 기계어로 번역하는 단계 빌드 : 소스코드가 실행이 되기까지 필요한 일련의 모든 프로세스 소스코드 -> 번역 compile -> 기계어 -> 리소스 파일 준비 -> 사람의 소스 코드(기계어 version) -> 리소스파일 연결( 링킹, 링크를 건다) -> 동작 (= 실행) , 이 모든 단계를 빌드라고 한다 컴파일러 : 컴파일을 해주는 것 컴파일: 소스 코드를 통째로 기계어로 번역 인터프리트: 소스 코드를 한줄씩 번역기계어로 번역. 빠르 ex) 파이썬 자바는? 둘 다 사용하는 하이브리드 언어 JVM Java Virtual Machine Garbage collection을 사용해 메모리 관리를 수행한다. 컴파일된 바이드 코드를 기계가 이해할 수 있게 기계어로 변환시킨다. 가장 큰 장..

게시판 프로젝트 - 첨부파일 다운로드

첨부파일을 다운로드 하는 기능을 구현할 것 -FileMapper 인터페이스 , 첨부파일 상세정보 조회 메서드 추가하기 첨부파일 다운로드는 게시글 상세 페이지에서 파일명을 클릭했을 때 실행된다. 이때 파일의 id(Pk)를 컨트롤러로 전달해 다운로드할 첨부파일의 상세정보를 DB에서 조회해야 한다. DB에서 첨부파일 상세정보를 조회할 수 있도록 FileMapper 인터페이승[ 아래 메서드를 추가한다. /** * 파일 상세정보 조회 * @param id - PK * @return 파일 상세정보 */ FileResponse findById(Long id); -FileMapper XML 첨부파일 상세정보 조회 SQL쿼리 작성 앞에서 추가한 메서드와 연결할 파일 상세정보 조회쿼리를 작성한다. SELECT FROM t..

JAVA/SpringBoot 2023.11.16

게시판 프로젝트 - 첨부파일 추가, 수정, 삭제 및 기존 파일 유지

게시글에 등록된 첨부파일을 상세 페이지에 출력해주는 기능을 구현. 기존에 첨부파일이 업로드된 게시글을 수정할 때 첨부파일을 추가, 변경, 삭제하는 방법과 파일에 변화가 없을 때 기존 첨부파일을 유지하는 방법을 알아볼 것 - 파일 응답 Response 클래스 생성 DB에 저장된 파일 정보를 조회하는 용도의 응답 클래스이다. 여기서 파일이란 실제로 디스크에 업로드된 후 파일 테이블(tb_file) 에 저장되는 정보를 의미한다. package com.study.domain.file; import lombok.Getter; import java.time.LocalDateTime; @Getter public class FileResponse { private Long id; // 파일 번호 (PK) private..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 다중 첨부 파일 업로드, 다운로드 구현

- 파일 테이블 생성 CREATE TABLE `tb_file` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '파일 번호 (PK)', `post_id` bigint(20) NOT NULL COMMENT '게시글 번호 (FK)', `original_name` varchar(255) NOT NULL COMMENT '원본 파일명', `save_name` varchar(40) NOT NULL COMMENT '저장 파일명', `size` int(11) NOT NULL COMMENT '파일 크기', `delete_yn` tinyint(1) NOT NULL COMMENT '삭제 여부', `created_date` datetime NOT NULL DEFAULT current_..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 로그인/ 로그아웃/ 로그인 세션 체크 기능

로그인, 로그아웃 기능을 구현하고, 인터셉터를 이용해 로그인이 되어있지 않은 경우, 게시판에 접근 할 수 없게 구현할 것 - MemberService 로그인 메서드 추가 public MemberResponse findMemberByLoginId(final String loginId) { return memberMapper.findByLoginId(loginId); } /** * 회원 정보 수정 * @param params - 회원 정보 * @return PK */ @Transactional public Long updateMember(final MemberRequest params) { params.encodingPassword(passwordEncoder); memberMapper.update(para..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - 회원가입 기능

DB에 회원 데이터를 관리할 테이블을 생성한 후 회원가입 기능을 구현해보자 - 회원 테이블 CREATE TABLE `tb_member` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '회원 번호 (PK)', `login_id` varchar(20) NOT NULL COMMENT '로그인 ID', `password` varchar(60) NOT NULL COMMENT '비밀번호', `name` varchar(20) NOT NULL COMMENT '이름', `gender` enum('M','F') NOT NULL COMMENT '성별', `birthday` date NOT NULL comment '생년월일', `delete_yn` tinyint(1) NOT NULL..

JAVA/SpringBoot 2023.11.15

게시판 프로젝트 - Ajax(비동기) 페이징 새로고침시 페이지 번호 유지하기

게시글과 같은 동기 처리는 페이지를 이동하는 시점에 주소URL가 변경되기 때문에 브라우저를 새로고침해도 페이지 번호화 검색 조건이 유지되지만 , Ajax는 페이지 번호에 해당되는 데이터를 조회하되 주소는 변경하지 않기 때문에 브러우저를 새로고침해도 페이지 번호가 유지되지 않는다는 문제가 있다. Histroy ApI 를 이용해 uri를 강제로 변경, 비동기 페이징 처리의 새로고침 문제를 해결한다. Histroy API? 사용자가 페이지에 접근을 하면 브라우저에 세션 기록이 쌓이게 된다. 이 세션 기록에 접근 할 수 있게 해주는 것이 브라우저의 history객체이다. - drawPage() view.html의 drawPage() 를 다음과 같이 변경해준다. // 페이지네이션 HTML draw function..

JAVA/SpringBoot 2023.11.15
728x90
반응형