전체 글 202

20220124 개발일지 #게시판 만들기(멀티페이지)

오늘은 이번주 개인과제인 게시판만들기를 다시 시작했다. 지난주 토요일에 개인 과제를 진행하면서 단일페이지(index.html)를 구현하지 못해서, 멀티 페이지로 구현하였다. 기본적으로 https://gonyda.tistory.com/3?category=803529 을 참고했다. github: https://github.com/paran22/springprac 1. 개발환경 구축 IntelliJ Java 8 Gradle MySQL 2. 라이브러리 JPA Thymeleaf Lombok DevTools 3. 설정 application.properties spring.datasource.url=엔드포인트:3306/myboard spring.datasource.username= spring.datasource.p..

#HiddenHttpMethodFilter

HTML은 POST, GET 방식의 요청만 지원 Spring은 POST, GET 방식을 이용해 PUT과 DELETE 방식을 사용할 수 있는 기능을 지원 설정 application.properties spring.mvc.hiddenmethod.filter.enabled=true​ 사용 방법 //게시글 삭제하기 @DeleteMapping("/post/{id}") public String delete(@PathVariable("id") Long id) { boardService.deletePost(id); return "redirect:/"; } 삭제 참고문헌: https://earth-95.tistory.com/49

서버/Spring boot 2022.01.24

#IntelliJ에서 Spring Boot Devtools 사용하기

Spring Boot Devtools를 사용하면 소스 변경이 발생할 때마다 빠르게 자동 빌드를 해주어 바로바로 반영 결과를 확인할 수 있다. 설정 dependency에 추가 build.gradle dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' }​ File > Setting > Build, Exeution, Deployment > Compiler > Build project automatically 체크 File > Setting > Advanced Setting > Allow auto-make to start even if developed application is currently running 체크 참고..

서버/Spring boot 2022.01.24

#Thymeleaf

타임리프는 텍스트, html, xml, js, css를 생성할 수 있는 템플릿 엔진이다. 순수 HTML로 템플릿을 작성할 수 있다. Springboot에서 사용이 권장되고 있다.(Springboot에서는 JSP를 추천하지 않음!) 설정 프로젝트 시작시 dependencies에 Thymeleaf를 추가해준다. build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'​ Controller는 @Controller 어노테이션을 부여한다(@RestController시 사용불가) 기본경로는 templates이다. html확장자는 생략해도 된다. 참고자료 : https://byeong9935.ti..

서버/Spring boot 2022.01.24

#JVM(Java Virtual Machine)

JVM : 자바 가상 머신 가상머신 : 프로그램을 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것 자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행될 수 있다. 자바 프로그램을 실행하기 위해서는 반드시 자바 가상 머신이 설치되어 있어야 한다. 자바 프로그램과 달리 JVM은 운영체제에 종속적이므로, 각 운영체제에 맞는 자바 가상 머신을 설치해야 한다. 자바 가상 머신이라는 한 단계를 거쳐야 하므로, 상대적으로 실행 속도가 느리다는 단점을 가지고 있다. 구성 자바 인터프리터(interpreter) : 자바 컴파일러에 의해 변환된 자바 바이트 코드를 일고 해석하는 역할. 클래스 로더(class loader) : 동적으로 클래스를 로딩해줌. 자바는 동적으로 클래스를 읽어오므로, 프로그램..

Language/JAVA 2022.01.24

20220122 개발일지

오늘은 Spring강의를 들으면서 이번주 개인과제인 게시판 만들기를 시작하였다. 구현해야하는 API는 다음과 같다. #게시판 API 설계하기 기능 Method URL Return 게시글 목록 조회하기 GET /api/boards List 게시글 조회하기 GET /api/boards/{id} Long 게시글 작성하기 POST /api/boards boards 기능 구현 자체는 오래 걸리지 않았다. 그런데 html로 구현하는데서 시간이 오래걸렸다. 우선 게시글 목록 조회와 작성은 static 폴더 안에 있는 index.html로 비교적 금방 구현했다. 모달을 사용하는 부분에서 조금 해맸는데, 부트스트랩과 미니프로젝트 코드를 참고해서 작성했다. 그런데 문제는 게시글 상세 조회하기 페이지였다. 처음에는 모달로 ..

[프로그래머스] 소수 찾기

https://programmers.co.kr/learn/courses/30/lessons/12921 import java.util.Arrays; class Solution { public int solution(int n) { //n+1개의 배열을 만들기 boolean[] arr = new boolean[n+1]; //초기화 : 모든 값을 true로 입력 Arrays.fill(arr, true); //0과 1은 소수가 아니니 제외 arr[0] = arr[1] = false; //2부터 시작 //아래 for문에서 배수에 해당하는 수는 모두 지울 것이므로 횟수 제한 for (int i = 2; i*i

Language/JAVA 2022.01.21

20220121 개발일지

오늘부터 주특기 Spring 기본 주차를 시작한다. 이번주에는 개인과제로 조건에 맞는 웹페이지를 만들고, 팀과제로는 Spring 공부하면서 나오는 여러 개념들을 정리한다. 새로운 개념들이 많이 나오기도 했고, 실제로 해보면서 하는게 좋을 것 같아서 내일부터 바로 과제 시작해야할 것 같다. #Spring의 구조 Controller : 가장 바깥 부분, 요청/응답을 처리함. Service : 중간 부분, 실제 중요한 작동이 많이 일어남. Repository : 가장 안쪽 부분, DB와 맞닿아 있음 #Controller 클라이언트의 요청(Request)을 전달받는 코드 Rest : 서버의 응답이 JSON형식임을 나타냄 → RestControlle @RestController @GetMapping : Get방식..

20220120 개발일지(WIL)

이번 주차는 알고리즘 기초 주간이었다. 개발일지라기보다는, 공부일지에 가까운 것 같다. 알고리즘 주간이었지만 실제 알고리즘을 공부했다기 보다는 JAVA 기본 문법을 익히는 시간이었다. 선정된 문제들은 프로그래머스 level 1 단계 문제들로, 찾아보니 1단계는 알고리즘에 대한 지식없이도 기본 문법을 가지고도 풀 수 있는 문제라고 한다. 처음에 JAVA라는 언어에 매력을 느꼈던 부분 중 하나는 타입과 관련된 부분이었다. 그런데, 실제 공부하면서 특히 초창기에 가장 힘들었던 부분도 타입이었다. 타입에 따라서 사용할 수 있는 메소드가 너무 달랐고, 문제에서 요구하는 타입으로 변환해서 반환하는 것도 힘들었다. 특히 처음에는 자바가 어떤 언어인지, 메소드는 어떻게 쓰는 건지, 어떤 식으로 동작하는지 파악이 안되서..