목록분류 전체보기 (473)
2swan
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/HOUaX/btstSiZuuHA/xhXao6Nh9X1VZbrhaO1Uf1/img.png)
@Controller 에너테이션은 HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미 이 어너테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다. hello 메서드에 적용된 @GetMapping("/hello") 어너테이션은 http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 실행됨을 의미한다. 즉, /hello URL과 hello 메서드를 매핑하는 역할을 한다. @ResponseBody 애너테이션은 hello 메서드의 응답 결과가 문자열 그 자체임을 나타내며, hello 메서드는 "Hello World" 라는 문자열을 리턴하므로 출력으로 "Hello World" 문자열이 응답된다. @ResponseBody 애너테이션은 URL 요청에 대..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cazRpY/btstMzUZAxC/lKeDyR8smoJDMLCZUBFGQk/img.png)
1. 인코딩 필터 설정 브라우저에서 보내는 요청(Requset), 응답(Response)을 모두 UTF-8 로 고정하기 위해 인코딩 필터를 설정 src/main/webapp/WEB-INF/web.xml 2. 로그 레벨 설정 개발 중에는 가능한 많은 정보가 나오는 것이 개발에 수월하며, 따라서 로그 레벨을 가장 낮은 레벨인 debug 모드로 변경 src/main/resources/log4j.xml
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ciuZNT/btstXyNhfJ3/iqjNyBO5QAKpocLwi8Yar0/img.png)
1. 톰캣(Tomcat) 서버 연동 Windows > Preferences > Server > Runtime Environments 사용하고자 하는 버전 클릭 설치한 경로(directory) 설정 Available > Configured로 프로젝트 이동 (기존에 등록한 이력이 있으면 servers 톰캣 우클릭 Add and Remove...) 2. 톰캣(Tomcat) 실행환경 설정 1.Servers 탭의 Tomcat 더블클릭해서 톰캣 실행 환경 설정을 할 수 있다. 2.타임 아웃 설정 타임아웃(timeout) 서버가 시작될 때 몇 초 내에 시작이 안 되면 서버 시작 실패라고 간주하는지 설정하는 것이다. 프로젝트 규모가 클 경우 시작되는 시간이 오래걸리므로 여유있게 120초(2분)으로 설정 Overview..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cOMkdv/btstSzzp3ZX/kHOvg9optfvNXXDnJJnbak/img.png)
1. 프로젝트 자바 버전을 11로 변경 프로젝트 우클릭 -> properties Java Build Path ->Libraries 탭 -> JRE System Library JavaSE-11 (jdk-11.0.14) 2. 메이븐 자바 버전을 11로 변경 및 스프링 버전을 최신 버전으로 업데이트 메이븐은 프로젝트를 생성하고 라이브러리를 관리하고 빌드하는 것까지 프로젝트의 라이프 사이클을 관리하는 소프트웨어 프로젝트 루트에 있는 pom.xml 이 메이븐 설정 파일이다. 3. faceted project problem (java version Mismatch) 오류 해결 프로젝트 우클릭 -> properties Project Facets 메뉴 클릭 Java Version 11로 변경 4. 메이븐 빌드 실행 p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uRSFy/btstLO4vxxQ/lkt1KPWhZZqR9WGtly8pLk/img.jpg)
App.js import {BrowserRouter, Route, Routes} from "react-router-dom" import './App.css'; import Home from './routers/Home'; import About from "./routers/About"; import Navigation from "./components/Navigation"; import Poster from "./routers/Poster"; import Detail from "./routers/Detail"; function App() { return ( ); } export default App App.css * { box-sizing: border-box; } body { margin: 0; pad..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NoIx8/btstHaNABae/9kwcRv3PD81bKy9aIFkSNk/img.jpg)
App.js import {BrowserRouter, Route, Routes} from "react-router-dom" import './App.css'; import Home from './routers/Home'; import About from "./routers/About"; import Navigation from "./components/Navigation"; function App() { return ( ); } export default App; App.css * { box-sizing: border-box; } body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Aa4cf/btstG4TTzG7/PeRCRSOVONupExSEHjkOu1/img.jpg)
BoardController @RestController public class BoardController { @Autowired private BoardService boardService; //추가 //@PostMapping("insert") //public void insert(@RequestBody Board board) { //boardService.insert(board); //} //추가(입력 2 방법 때문에 이렇게 수정) @PostMapping("insert") public Board insert(@RequestBody Board board) { boardService.insert(board); return board; } //전체보기 @GetMapping("list") public Li..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yWmXx/btstG5rHa2o/koyJkseZ0zxULAnzBwkk9K/img.jpg)
App.js import BoardForm from './BoardForm'; import BoardList from './BoardList'; import {useEffect} from "react" import axios from "axios" import {useState} from "react" import './App.css'; function App() { const [listContent, setListContent] = useState([]) useEffect(()=>{ listBoard() },[]) //추가(Form.js 입력2 방법) const insertBoard = (data)=>{ //data는 추가된 내용 console.log(data) axios.post('insert',{ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TuyGl/btstMzZOVkp/nMxkraChSimzvA7ZWnG8LK/img.jpg)
BoardController @RestController public class TodoController { @Autowired private TodoService todoService; //전송 @PostMapping("todo/insert") public Todo insert(@RequestBody Todo todo ) { return todoService.insert(todo); } //전체보기 @GetMapping("todo/list") public Listlist(){ return todoService.list(); } //삭제 @DeleteMapping("todo/delete/{num}") public void delete(@PathVariable Long num) { todoService...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pSnmX/btstLQgxzHJ/vC54kqpmGagVKkBpuz3h7k/img.jpg)
App.js import './App.css'; import BoardForm from './BoardForm'; import BoardList from './BoardList'; import {useEffect} from "react"; import axios from 'axios'; import {useState} from "react"; function App() { const [listContent, setListContent] = useState([]) useEffect(()=>{ listBoard() },[]) //추가(Form.js 입력2 방법) const insertBoard = (data)=>{ //data는 추가된 내용 console.log(data) axios.post('/api/in..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpdNYK/btstmvKG0kR/jz3sYQHv4eamWnsKQ0RVp0/img.jpg)
App.js import logo from './logo.svg'; import {Component} from "react"; import './App.css'; import CommentList from './CommentList'; import TodoListTemplate from './component/TodoListTemplate'; import Form from './component/Form'; import TodoItemList from './component/TodoItemList'; import NotificationList from './NotificationList'; class App extends Component { state = { id : 4, input : '', todo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SMq77/btstcRviubh/uxpdhYiH8Kil1Msuf29dT1/img.jpg)
App.js import { Component } from 'react'; import './App.css'; import PhoneList from './component/PhoneList'; import PhoneForm from './component/PhoneForm'; class App extends Component { id = 2; state = { information: [ { id : 0, name:"홍길동", phone:"010-1111-1111" }, { id : 1, name:"이순신", phone:"010-2222-2222" } ] } //추가(기존 값에 추가) handleCreate= (data) =>{ console.log(data) const {information} = th..