반응형

1. google 에서 git을 검색합니다.

2. 다운로드를 클릭하여 git downloads의 화면으로 들어갑니다.

3. Click here to download를 클리하여 git을 다운받고 실행을 합니다.

4. 옵션은 이렇게 하고 계속 설치를 진행합니다.

5. 쭉쭉 기본 세팅으로 설치를 해주었습니다.( 넥스트 누르다가.. 스샷을.. 못찍음..ㅠ_ㅠ)

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

google 에서 visual studio code 를 검색합니다.

웹 사이트에 접속후

download 버튼을 클릭합니다.

그럼 VSCodeUserSetup 파일을 다운로드 할 수 있습니다.

 다운받은 파일을 실행하고

다음을 누르면 아래의 창이 뜨는데 모두 클릭해 주겠습니다. 

이렇게 하면 설치가 완료 됩니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

 

2004 업데이트는 WSL, 즉 리눅스 서브시스템 기능이 포함되어 있습니다.

그래서 2004 버전으로 윈도우를 업데이트 해 주겠습니다.

 

1. https://www.microsoft.com/ko-kr/software-download/windows10

 

Windows 10 다운로드

Windows 10용 ISO 파일을 다운로드한 경우, 해당 파일은 선택한 위치에 로컬로 저장됩니다.컴퓨터에 타사 DVD 굽기 프로그램이 설치되어 있으며 해당 프로그램을 사용하여 설치 DVD를 만들려는 경우,

www.microsoft.com

위의 사이트로 들어가서 지금 업데이트를 클릭합니다.

2004

EXE파일을 다운 받아 실행해 줍니다.

 

지금 업데이트를 클릭하고 쭉 쭉 설치해 주겠습니다.

지금 다시 시작해 주겠습니다. 

그 후에 윈도우 업데이트가 시작되는데 기다리시면 완료 됩니다.!

반응형

'2022 > 개발환경 세팅' 카테고리의 다른 글

vscode setting, oh myzsh 설치  (0) 2022.07.02
WSL2 ,Chocolately 사용(ubuntu, python, wsl2, windows terminal)  (0) 2022.07.01
Visual Studio Code 커스터마이징  (0) 2022.07.01
git 설치  (0) 2022.06.30
visual studio code 설치  (0) 2022.06.30
블로그 이미지

꽃꽂이하는개발자

,
반응형
// 문법을 엄격하게 봐줌
'use strict';


class Person {

    //생성자
    constructor(name, age){
        this.name = name;
        this.age = age;
    }

    //함수
    speak(){
        console.log(`${this.name}: hello`);

    }
}

const mario = new Person('Mario', 35);
console.log(mario.name);
console.log(mario.age);
mario.speak();


//2. Getter and setters
class User{
    constructor(firstName, lastName, age){
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }
    get age(){
        return this._age;
    }

    set age(value){
        // if(value < 0){
        //     throw Error('age can not be negative');
        // }

        this._age = value < 0 ? 0 : value;
    }
}

const user1 = new User('Steave', 'job', -1);
console.log(user1.age);


//4. Static properties and methods
class Article {
    static publisher = 'Dream Coding';
    constructor(articleNumber) {
        this.articleNumber = articleNumber;
    }

    static printPublisher(){
        console.log(Article.publisher);
    }
}

const article1 = new Article(1);
const article2 = new Article(2);

console.log(Article.publisher);
Article.printPublisher();

//5. Inheritance
class Shape {
    constructor(width, height, color){
        this.width = width;
        this.height = height;
        this.color = color;
    }

    draw(){
        console.log(`drawing ${this.color} color of`);
    }

    getArea(){
        return this.width * this.height;
    }
}

class Rectangle extends Shape {

}
class Triangle extends Shape{
    draw(){
        super.draw();
        console.log(' :) ')
    }
    getArea(){
    return (this.width * this.height) / 2 ;
    }
    toString(){
        return `Triangle Color : ${this.color}`;
    } 
}

const rectangle = new Rectangle(20, 20, 'blue');
rectangle.draw();
console.log(rectangle.getArea());
const triangle = new Triangle(20, 20, 'red');
triangle.draw();
console.log(triangle.getArea()); 
console.log(triangle.toString());
반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. https://egovframe.go.kr/cop/bbs/selectBoardArticle.do?nttId=1569&bbsId=BBSMSTR_000000000004&menu=4

 

교육자료 글조회 - eGovFrame Portal 온라인 지원 포탈

> 개발자 교육 > 교육자료

egovframe.go.kr

접속하여 eGovFrame-3.8.0.exe [3,365,614,259 byte]  다운하기

 

2. 다운로드한 파일을 설치해줍니다. 경로는 C:\에 해주세요.

 

3.  open perspective 를 클릭하여 eGovFrame 를 열어줍니다.

 

4. 패키지창에서

new - eGovFrame Web Project 클릭 아래와 같이 기입하고 Finish를눌러줍니다.

 

5. https://egovframe.go.kr/EgovEnvReleaseCom.jsp?menu=3&submenu=4&leftsub=2#

 

공통컴포넌트 다운로드 - eGovFrame Portal 온라인 지원 포털

 

egovframe.go.kr

위의 주소에접속하여 3.8.0 all-in-one 배포파일을 다운받고 압축을 해제한 후

파일들을 복사하여

4번에서 만들어준 폴더로 들어가서 붙여넣기를 해줍니다.

6. 패키지창에서 F5를 눌러 refrash를 해줍니다.

그러면 우리가 생성한 패키지 내에 많은 자바코드 들이 나타나게 됩니다.

 

7. 프로젝트우클릭 -> run as ->maven install 

빌딩이 모두 수행되면 프로젝트의 에러가 사라지게 됩니다.

8. globals.properties 로 들어가서 저는 오라클을 사용할 것이고. XE기 때문에 아래와 같이 설정을 해주었습니다.

9.  datasource에 들어가서 Oracle를 사용할것이기에 oracle을 제외한 다른 dbms는 주석처리 하겠습니다.

 

10.pom.xml 오라클을사용할 것이기에 아래에 있는 ojdbc를 복사해서 위로 빼줬습니다.

(자꾸 디펜던시 에러뜨면 디펜던시 삭제)

11. 

12. 서버 더블 클릭 Overview 탭으로 가서 Timeouts의 시간을 늘려줍니다( 처음 실행시 오래걸림..)

13. SQL 디벨로퍼를 작동시키고 ddl과 dml의 오라클쿼리를 복사하여 sql developer로 붙여넣고 스크립트 실행을 해줍니다.

(저는 vscode로 열어서 복사후 developer로 넣어줘서 실행시킴)

(테이블을 만들고, 내용물을 넣어줌)

(저는 시스템계정에서 myBoard 계정으로 모든 권한을 주고 myBoard계정에서 실행하였습니다. 다 한후에 커밋!!)

그러면 잘 작동 됩니당~

웹마스터 로그인의 아이디는

아이디 : webmaster
비밀번호 : rhdxhd12

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

스프링에 오라클과 마이바티스 연동을 하다가 Test클래스에서 아래와 같은 에러가 발생하였습니다.

 

Resource specification not allowed here for source level below 1.7

 

저는 1.8 버전을 사용중인데 pom.xml에 1.6으로 되어 있더군요

1.8로 바꿔주시면 위와 같은 에러는 사라지게 됩니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. /com/board/domain/page클래스를 만들고 분리 하겠습니다.

변수를 설정하고 getter와 setter를 설정합니다.

package com.board.domain;

public class Page {

	// 현재 페이지 번호
	private int num;

	// 게시물 총 갯수
	private int count;

	// 한 페이지에 출력할 게시물 갯수
	private int postNum = 10;

	// 하단 페이징 번호 ([ 게시물 총 갯수 ÷ 한 페이지에 출력할 갯수 ]의 올림)
	private int pageNum;

	// 출력할 게시물
	private int displayPost;

	// 한번에 표시할 페이징 번호의 갯수
	private int pageNumCnt = 10;

	// 표시되는 페이지 번호 중 마지막 번호
	private int endPageNum;

	// 표시되는 페이지 번호 중 첫번째 번호
	private int startPageNum;

	// 다음/이전 표시 여부
	private boolean prev;
	private boolean next;
	
	
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public int getPostNum() {
		return postNum;
	}
	public void setPostNum(int postNum) {
		this.postNum = postNum;
	}
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
	public int getDisplayPost() {
		return displayPost;
	}
	public void setDisplayPost(int displayPost) {
		this.displayPost = displayPost;
	}
	public int getPageNumCnt() {
		return pageNumCnt;
	}
	public void setPageNumCnt(int pageNumCnt) {
		this.pageNumCnt = pageNumCnt;
	}
	public int getEndPageNum() {
		return endPageNum;
	}
	public void setEndPageNum(int endPageNum) {
		this.endPageNum = endPageNum;
	}
	public int getStartPageNum() {
		return startPageNum;
	}
	public void setStartPageNum(int startPageNum) {
		this.startPageNum = startPageNum;
	}
	public boolean getPrev() {
		return prev;
	}
	public boolean getNext() {
		return next;
	}
		
	private void dataCalc() {
		 
		 // 마지막 번호
		 endPageNum = (int)(Math.ceil((double)num / (double)pageNumCnt) * pageNumCnt);
		 
		 // 시작 번호
		 startPageNum = endPageNum - (pageNumCnt - 1);
		 
		 // 마지막 번호 재계산
		 int endPageNum_tmp = (int)(Math.ceil((double)count / (double)pageNumCnt));
		 
		 if(endPageNum > endPageNum_tmp) {
		  endPageNum = endPageNum_tmp;
		 }
		 
		 prev = startPageNum == 1 ? false : true;
		 next = endPageNum * pageNumCnt >= count ? false : true;
		 
		 displayPost = (num - 1) * postNum;
		 
		}
		
}

2.  boardController

package com.board.controller;

import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.board.domain.BoardVO;
import com.board.domain.Page;
import com.board.service.BoardService;

@Controller
@RequestMapping("/board/*")
public class BoardController {

	@Inject
	BoardService service;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public void getList(Model model) throws Exception {
	
		List<BoardVO> list = null;
		list = service.list();
		
		model.addAttribute("list", list);
	}
	// 게시물 작성 (서버에서 사용자로 데이터 이동 GET메서드)
	@RequestMapping(value = "/write", method = RequestMethod.GET)
	public void getWrite() throws Exception{
		
	}
	
	//게시물 작성 (사용자에서 서버로 데이터 이동 POST메서드
	@RequestMapping(value = "/write", method = RequestMethod.POST)
	public String postWrite(BoardVO vo) throws Exception{
		service.write(vo);
		
		return "redirect:/board/list";
	}
	
	//게시물 조회
	@RequestMapping(value= "/view", method = RequestMethod.GET)
	public void getView(@RequestParam("bno") int bno, Model model) throws Exception{
		BoardVO vo = service.view(bno);
		model.addAttribute("view", vo);
	}
	
	//게시물 수정
	@RequestMapping(value = "/modify", method = RequestMethod.GET)
	public void getModify(@RequestParam("bno") int bno, Model model) throws Exception {
		
		BoardVO vo = service.view(bno);
		
		model.addAttribute("view", vo);
		
		System.out.println("view" + bno);
	}
	
	//게시물 수정
	@RequestMapping(value ="/modify", method = RequestMethod.POST)
	public String postModify(BoardVO vo) throws Exception{
		service.modify(vo);
		
		return "redirect:/board/view?bno=" + vo.getBno();
	}
	
	//게시물 삭제
	@RequestMapping(value = "/delete", method = RequestMethod.GET)
	public String getDelete(@RequestParam("bno") int bno) throws Exception{
		
		service.delete(bno);
		return "redirect:/board/list";
	}
	
	// 게시물 목록 + 페이징 추가
	@RequestMapping(value = "/listPage", method = RequestMethod.GET)
	public void getListPage(Model model, @RequestParam("num") int num) throws Exception {
		Page page = new Page();
		
		page.setNum(num);
		page.setCount(service.count());  

		List list = null; 
		list = service.listPage(page.getDisplayPost(), page.getPostNum());

		model.addAttribute("list", list);  
		
		model.addAttribute("page", page);
		model.addAttribute("select", num);
		
	}
	
	
	
	
}

3. listPage.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시물 목록</title>
</head>
<body>
<div id="nav">
	<%@ include file="../include/nav.jsp" %>
</div>
<table>
	<thead>
		<tr>
			<th>번호</th>
			<th>제목</th>
			<th>작성일</th>
			<th>작성자</th>
			<th>조회수</th>
		</tr>
	</thead>
		
	<tbody>
		<c:forEach items="${list}" var="list">
			<tr>
				<td>${list.bno}</td>
				<td>
					<a href="/board/view?bno=${list.bno}">${list.title}</a>
				</td>
				<td>${list.regDate}</td>
				<td>${list.writer}</td>
				<td>${list.viewCnt}</td>
			</tr>
		</c:forEach>
		
	</tbody>
</table>
<div>
<c:if test="${page.prev }">
	<span>[ <a href="/board/listPage?num=${page.startPageNum - 1 }">이전</a>]</span>
</c:if>



<c:forEach begin="${page.startPageNum}" end="${page.endPageNum}" var="num">
	<span>
		
		<c:if test="${select != num }">
		<a href="/board/listPage?num=${num}">${num}</a>
		</c:if>
		
		<c:if test="${select == num }">
		<b>${num }</b>
		</c:if>
		
	</span>
</c:forEach>


<c:if test="${page.next}">
	<span>[<a href="/board/listPage?num=${page.endPageNum + 1 }">다음</a>]</span>
</c:if>


</div>
</body>
</html>
반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. BoardController

package com.board.controller;

import java.util.List;

import javax.inject.Inject;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.board.domain.BoardVO;
import com.board.domain.Page;
import com.board.service.BoardService;

@Controller
@RequestMapping("/board/*")
public class BoardController {

	@Inject
	BoardService service;
	
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public void getList(Model model) throws Exception {
	
		List<BoardVO> list = null;
		list = service.list();
		
		model.addAttribute("list", list);
	}
	// 게시물 작성 (서버에서 사용자로 데이터 이동 GET메서드)
	@RequestMapping(value = "/write", method = RequestMethod.GET)
	public void getWrite() throws Exception{
		
	}
	
	//게시물 작성 (사용자에서 서버로 데이터 이동 POST메서드
	@RequestMapping(value = "/write", method = RequestMethod.POST)
	public String postWrite(BoardVO vo) throws Exception{
		service.write(vo);
		
		return "redirect:/board/list";
	}
	
	//게시물 조회
	@RequestMapping(value= "/view", method = RequestMethod.GET)
	public void getView(@RequestParam("bno") int bno, Model model) throws Exception{
		BoardVO vo = service.view(bno);
		model.addAttribute("view", vo);
	}
	
	//게시물 수정
	@RequestMapping(value = "/modify", method = RequestMethod.GET)
	public void getModify(@RequestParam("bno") int bno, Model model) throws Exception {
		
		BoardVO vo = service.view(bno);
		
		model.addAttribute("view", vo);
		
		System.out.println("view" + bno);
	}
	
	//게시물 수정
	@RequestMapping(value ="/modify", method = RequestMethod.POST)
	public String postModify(BoardVO vo) throws Exception{
		service.modify(vo);
		
		return "redirect:/board/view?bno=" + vo.getBno();
	}
	
	//게시물 삭제
	@RequestMapping(value = "/delete", method = RequestMethod.GET)
	public String getDelete(@RequestParam("bno") int bno) throws Exception{
		
		service.delete(bno);
		return "redirect:/board/list";
	}
	
	// 게시물 목록 + 페이징 추가
	@RequestMapping(value = "/listPage", method = RequestMethod.GET)
	public void getListPage(Model model, @RequestParam("num") int num) throws Exception {
		Page page = new Page();
		
		page.setNum(num);
		page.setCount(service.count());  

		List list = null; 
		list = service.listPage(page.getDisplayPost(), page.getPostNum());

		model.addAttribute("list", list);   
		model.addAttribute("pageNum", page.getPageNum());

		model.addAttribute("startPageNum", page.getStartPageNum());
		model.addAttribute("endPageNum", page.getEndPageNum());
		 
		  model.addAttribute("prev", page.getPrev());
		model.addAttribute("next", page.getNext());  

		model.addAttribute("select", num);
		/*
	 // 게시물 총 갯수
	 int count = service.count();
	  
	 // 한 페이지에 출력할 게시물 갯수
	 int postNum = 10;
	  
	 // 하단 페이징 번호 ([ 게시물 총 갯수 ÷ 한 페이지에 출력할 갯수 ]의 올림)
	 int pageNum = (int)Math.ceil((double)count/postNum);
	  
	 // 출력할 게시물
	 int displayPost = (num - 1) * postNum;
	    
	 // 한번에 표시할 페이징 번호의 갯수
	 int pageNum_cnt = 10;
	 
	 // 표시되는 페이지 번호 중 마지막 번호
	 int endPageNum = (int)(Math.ceil((double)num / (double)pageNum_cnt) * pageNum_cnt);
	 
	 //표시되는 페이지 번호 중 첫번째 번호
	 int startPageNum = endPageNum - (pageNum_cnt -1);
	 
	 //마지막 번호 재계산
	 int endPageNum_tmp = (int)(Math.ceil((double)count) / (double)pageNum_cnt);
	 
	 if(endPageNum > endPageNum_tmp) {
		 endPageNum = endPageNum_tmp;
	 }
	 
	 boolean prev = startPageNum == 1 ? false : true;
	 boolean next = endPageNum * pageNum_cnt >=count ? false : true;
	 
	 List list = null; 
	 list = service.listPage(displayPost, postNum);
	 model.addAttribute("list", list);   
	 model.addAttribute("pageNum", pageNum);
	 
	 //시작 및 끝 번호
	 model.addAttribute("startPageNum", startPageNum);
	 model.addAttribute("endPageNum", endPageNum);
	 
	 // 이전 및 다음
	 model.addAttribute("prev", prev);
	 model.addAttribute("next", next);
	 
	// 현재 페이지를 select에 담아서 보냄
	 model.addAttribute("select", num); 
	 */
	}
	
	
	
	
}

2. listPage.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시물 목록</title>
</head>
<body>
<div id="nav">
	<%@ include file="../include/nav.jsp" %>
</div>
<table>
	<thead>
		<tr>
			<th>번호</th>
			<th>제목</th>
			<th>작성일</th>
			<th>작성자</th>
			<th>조회수</th>
		</tr>
	</thead>
		
	<tbody>
		<c:forEach items="${list}" var="list">
			<tr>
				<td>${list.bno}</td>
				<td>
					<a href="/board/view?bno=${list.bno}">${list.title}</a>
				</td>
				<td>${list.regDate}</td>
				<td>${list.writer}</td>
				<td>${list.viewCnt}</td>
			</tr>
		</c:forEach>
		
	</tbody>
</table>
<div>
<c:if test="${prev }">
	<span>[ <a href="/board/listPage?num=${startPageNum - 1 }">이전</a>]</span>
</c:if>



<c:forEach begin="${startPageNum}" end="${endPageNum}" var="num">
	<span>
		
		<c:if test="${select != num }">
		<a href="/board/listPage?num=${num}">${num}</a>
		</c:if>
		
		<c:if test="${select == num }">
		<b>${num }</b>
		</c:if>
		
	</span>
</c:forEach>


<c:if test="${next}">
	<span>[<a href="/board/listPage?num=${endPageNum + 1 }">다음</a>]</span>
</c:if>


<%--
 <c:forEach begin="1" end="${pageNum}" var="num">
    <span>
     <a href="/board/listPage?num=${num}">${num}</a>
  </span>
  
  
 </c:forEach>
 --%>
</div>
</body>
</html>

 

출처 : https://kuzuro.blogspot.com/2019/09/10-2.html

반응형
블로그 이미지

꽃꽂이하는개발자

,