목록전체 글 (400)
Just Do IT!

JPA를 공부하면서, 확실히 그냥 mybatis를 사용하는 것보다 훨씬 편하다는 걸 느낀다.그렇지만 정해진 시간 내에 진도를 나가야 하니까 너무 정신 없어서...공부가 더 필요함을 느끼기도 한다(ㅋㅋㅋ)아무튼,오늘 블로그 CRUD 실습을 하면서 새로운 걸 배우게 되어서 블로그에 기록을 하려 한다.어차피 계속 테이블을 생성하면서 쓸 거 같아서... 우선!데이터를 생성하거나 수정할때 생성일과 수정일을 항상 포함시켜서 테이블을 설계한다.수업에서 배웠던 실습을 예시로 들어서 설명해보자면,글을 작성할 때 title, content, created_at, updated_at이 필요할 것이다.(id는 필수이므로 굳이 언급하지 않겠다.) 그러면 테이블에는idtitlecontentcreated_atupdated_atd..

JPA package 구조는 위의 그림과 같다.dao 역할을 repository가 하는 것이다. MyBatis package이전에 배웠던 mybatis에서는 mapper를 사용하기 때문에 따로 dao를 만들지 않고 mapper package를 생성했었다. package com.kosta.mapper;import java.util.List;import org.apache.ibatis.annotations.Mapper;import com.kosta.dto.User;@Mapperpublic interface UserMapper { void save(User user) throws Exception; void deleteById(int id) throws Exception; User findByI..

수업 실습 중에, 이미지를 화면에 뿌려주고 싶었다.file_tbl에 따로 fileList를 저장해두었고 해당 글에 포함된 이미지 파일들이 나오게 하고 싶은 것이었다. 우선 관련 내용을 설명해보자면 다음과 같다.(참고로 thymeleaf를 사용하여 웹 페이지를 구현하고 있다.) 글을 작성하면 해당 글이 community_tbl에 저장된다.글에 포함된 이미지들은 따로 file_tbl에 저장된다.이미지가 저장될 때 이미지가 저장되는 경로도 함께 저장된다.stored_file_path를 통해 파일이 저장된 경로를 알 수 있다.글의 detail page에 들어가면 해당 글의 내용을 볼 수 있다.그 중, 이미지도 함께 구현하려고 한다. 여기서 필요한 게 바로 WebMvcConfigurer이다. WebM..
수업 실습 중에 파일 업로드와 다운로드 기능을 하고 있었다.다운로드 기능 구현하면서 ResponseEntity라는 새로운 객체를 배웠는데, 뭔지 잘 모르겠어서 블로그에 정리해보려고 한다. HTTP(HyperText Transport Protocol)웹서비스에서 보내는 요청 및 데이터의 형식 Client 와 Server 사이에 요청과 응답을 처리하기 위한 규약이다.HTTP 요청의 세 가지 요소Start Linemethod, URL, 그리고 version으로 이루어져 있다. 서버에서 요청을 받아들이는 첫 줄Headers요청에 대한 접속 운영체제, 브라우저, 인증 정보와 같은 부가적인 정보를 담고 있다Body요청과 관련된 json, html과 같은 구체적 내용을 포함한다.HTTP 응답Status LineHTT..

log4jdbc-log4j2란?자바 어플리케이션에서 JDBC 드라이버를 사용할 때 SQL문의 실행 로그를 자동으로 기록해주는 라이브러리이다.MyBatis를 사용하는 경우 Query Formatting을 지원하여 실제 실행되는 쿼리에 대해 문자열로 확인이 가능하다.MyBatis는 내부적으로 JDBC의 PreparedStatement를 이용해서 SQL을 처리한다.따라서 SQL에 전달되는 파라미터는 JDBC에서와 같이 '?' 로 치환되어서 처리된다.SQL 로그를 제대로 보기 위해서는 이 라이브러리를 사용해야 한다.구현체인 Slf4j에서 사용이 가능하며 SQL문을 실행할 때마다 자동으로 로그를 남겨 디버깅과 모니터링을 할 수 있다. 개발 단계에서 SQL문을 편리하게 보거나 중요한 쿼리의 수행을 보기 위해 사용한..

spring을 배우는 과정에서 db를 연동하는데 콘솔에이런식으로 연동되는 걸 볼 수 있었다.그래서 Hikari란 무엇인지, 그리고 정확하게 DB Connection이 무엇인지 정리해보려고 한다. DataSource란?데이터소스(DataSource)는 물리적인 데이터 베이스에 연결하기 위한 팩토리이다.데이터베이스에 연동하기 위해 username, password, url을 사용한다.mySQL을 사용을 예시로 들면, driver class name, url, username, password를 알아야 DB에 연동할 수 있다. DB Connection Pool 일반적인 데이터 연동과정은 웹 어플리케이션이 필요할 때마다 데이터베이스에 연결하여 작업하는 방식인데, 필요할 때마다 연동해서 작업하면 데이..

이클립스로 xml 파일을 작성하는데, 자꾸 이런식으로 빨간줄이 뜨고 에러가 났다.에러 내용을 보면Downloading external resources is disabled.이렇게 써 있는데 구글링하고 간단히 해결할 수 있었다. 이클립스 상단의 Window > Preferences를 클릭한 다음, 저 첫번째 체크박스를 클릭해 적용하면 에러는 사라진다.

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStream..

package week1;import java.util.Scanner;public class Day1_1978 { public static void main(String[] args) { // 숫자 N개 중 소수가 몇 개인지 찾아서 출력 Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 숫자 개수 int num; int count = 0; for (int i = 0; i 동기들과 매일 1문제씩 꾸준히 풀어보기로 해서 시작하는 블로그 1일 1글 챌린지(?)열심히 해야지...! 풀이는 블로그에 올리고 코드도 올리고 있는데, private으로 설정해줘서 굳이 블로그에 첨부하지는 않을 예정이다.어차피 백준허브로 자동으로 커밋되니까...

KOSTA에서 공부를 하면서, 너무 빠르게 진도를 나가다보니 복습의 중요성을 너무너무 잘 느끼게 되었다.물론 수업이 부족하다는 뜻이 아니라, 배우는 양이 많다는 뜻!그래서 쉬는 기간을 이용하여 간단하게 프로젝트를 만들어보면서 배웠던 걸 복습해보기로 했다. java와 mySQL을 사용한 간단한 콘솔 프로젝트이다.기획은 짬짬히 해서 한 2~3일 정도 하였고, 나름대로 노션에 기획안도 적어봤었다.그리고 database를 만들기 위해 이전에 수업에서 했었던 SNS 프로그래밍도 참고해서 만들었다. 자세한 기획과 기능 구현한 것들은 깃허브 레파지토리에서 볼 수 있다.https://github.com/seoyeon-jung/SLibrary-java GitHub - seoyeon-jung/SLibrary-java: J..