본문 바로가기

분류 전체보기

(25)
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (6) - Service 지금까지 한 것 1. 이클립스설치,JDK설치,환경변수 설정 2. 이클립스STS설치, Web software설치 3. Spring starter project (스프링 부트 프로젝트) 생성 4. JSP VIEW(jstl,jasper), DEVTOOLS,spring-boot-starter-test,junit,mybatis등 추가적으로 필요한 디펜던시 추가, 5. Mysql을 이용해서 게시판 구현에 필요한 DB생성 6. dto,dao(Mybatis의 경우 mapper)클래스를 이용해서 DB의 객체화 7. Junit과 스프링-테스트를 이용해서 정상적으로 DB에 반영되는지 테스트 까지 진행하였다. 이번 포스팅에서 진행할 것은 서비스의 구현이다. 6번을 설명할 쯤에 DAO는 객체화된 DB를 이용해서 삽입,삭제,갱신..
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (5) - application, mysql , dto, dao(mapper),mybatis 이제 패키지들과 view폴더를 만들었으니 그 안의 내용물들을 알차게 추가해서 Mysql db와 연동해서 db안의 내용을 웹 페이지에 띄워주는 작업을 진행 할 것이다. 1. 일단, db와 연동을 하려면 당연히 mysql db가 작성이 되어 있어야 한다. 그렇다면 Mysql을 설치하고 스키마 정의, 테이블 정의 를 해주어야 한다. Mysql을 도스창으로 사용하던지, 나처럼 workbench를 이용하던지는 상관 없다. 게시판 사용자의 이름,성별,id,pw 등을 저장하는 user 테이블과 게시물의 제목,내용,작가,pw,게시일을 저장하는 board테이블을 만들어주자. 이렇게 테이블을 만들었으면 이제 해야할 일은 이클립스를 이용해 만든 웹 페이지에서 정보를 입력 받으면 그 정보가 Mysql의 db에 쌓이게 하고 또..
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (4) - 스프링부트 프로젝트 만들기 이제 본격적으로 스프링 부트 프로젝트를 만들어보자. 메뉴바의 file-new-Spring Starter Project를 클릭하자. name만 본인이 원하는 것으로 설정하고 나머지는 건드릴 필요가 없다. java버전은 최근에 나온 16보다는 11이 범용적으 로 많이 사용되고 있어서 나는 11로 설정했다. Next를 누르면 자신이 사용할 Dependancy를 고르라고 한다. 간단한 게시판을 만들 것이므로 너무 많은것을 고르지는 말자. 나중에 더 많은 기능을 가진 웹 프로그램을 만들게 된다면 그때는 본인이 필요한 디펜던시를 추가해도 좋다. 일단은 DB와 관련된 드라이버와 mybatis, web만 추가하도록 하자. 그리고, 추가적으로 Devtools도 같이 설치했는데 이것은 코드의 내용을 수정했을 때, 원래는 ..
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (3) - 스프링 부트를 이용하기 위한 sts설치, software설치 이제 JDK설치,이클립스 설치, 환경변수 설정을 마쳤다면 이클립스를 실행할 수 있을것이다. 이클립스를 처음 설치된 상태로는 사실상 할 수 있는게 거의 없다. 보통 이클립스의 설치를 완료 했다면, 내가 IDE를 통해서 하고싶은 개발에 맞추어 필요한 각종 프레임워크, tool을 설치 해 주어야 한다. 우리는 spring framework를 이용해서 웹 개발을 할 것이므로 그에 맞추어 각종 툴을 설치해보도록 하자. 일단 이클립스를 켜고 workspace를 만들어서 빈 창을 띄워보자. (너무 기본적인 부분이라 따로 설명은 생략한다.) 우리가 웹 개발을 할 때에는 프레임워크를 비롯해서 jsp, html, css, servelet, DB커넥터, mybatis 등 다양한 기능을 필요 로 하지만, 지금 상태로는 아무것..
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (2) - 이클립스 설치, JDK설치, 환경변수 설정 1. JDK설치 웹페이지 개발에 앞서 가장 먼저 해야 할 일은 JDK를 설치하고 환경변수를 설정하는 일이다. 가장먼저 아래 링크에 들어가서 JDK를 설치해보자. https://www.oracle.com/java/technologies/javase-jdk16-downloads.html 들어가보면 JDK 16의 Linux버전, MAC버전, WINDOW버전이 존재한다. 각자 자신의 운영체제에 맞는 버전을 선택해서 설치해주면 되겠다. 만약, 본인이 스스로 프로젝트를 만드는 것이 아니라 누군가가 만든 프로젝트를 IMPORT해서 사용 할 예정이라면 반드시 상대방 프로젝트의 JDK버전을 확인해서 그와 맞는 버전의 JDK를 설치해야 겠지만, 지금은 처음부터 스스로 프로젝트를 만들어 볼 예정이므로 그냥 가장 높은버전을 ..
SPRING BOOT를 이용한 나의 첫 웹페이지 제작 (1) 웹페이지의 개발은 크게 2가지로 나뉜다고 한다. 하나는 프론트앤드 개발이고 다른 하나는 백앤드 개발이다. 프론트앤드 개발은 웹페이지 사용자가 직접 눈으로 보게되는 사이트의 디자인, 즉 VIEW를 만드는 것이라고 한다. VIEW는 보통 HTML(내용)+CSS(이미지,디자인), JAVASCRIPT(웹을 동적으로,풍부하게)를 통해서 만들어지게 된다. 백엔드 개발은 사용자에게 보이는 부분이 아니라, 웹페이지의 내부적인 것을 다루게 된다. 백엔드 개발에서 가장 중요시 되는 것은 웹을 데이터베이스와 연동하여 사용할 수 있게끔 만들어주는 것이다. 이 카테고리에서 지금부터 다루게 될 스프링 부트 프레임워크는 JAVA언어를 사용하는 백엔드-프레임워크 이다. 간단하게 내 노트북 안에 작은 SQL(데이터베이스)저장소를 만들..
파이썬 pytorch를 이용해서 CNN을 코딩으로 구현해보자. 이전의 포스트에서 CNN의 개념에 대해서 설명했다. 그렇다면 코딩을 참고하면서 pytorch기반의 CNN이 어떻게 구현되는지 알아보자. (Tenserflow의 방식도 거의 비슷하다.) 일단, CNN으로 형성된 모델을 한번 살펴보자. 모델의 전체적인 모양은 이렇게 생겼다. 세부적으로 뜯어서 보자면, keep_prob은 CNN모델의 dropout에 사용하고자 선언 한 것인데 이는 나중에 다시 포스팅 할 예정이니 무시해도 좋다. 또한 ReLU는 gradient vanish현상을 막아주는 용도이고 MaxPool2d은 output size를 줄이기 위해 사용했다. 이 것들(ReLU,MaxPool,DropOut)의 자세한 설명은 나중에 따로 포스팅하고 지금은 CNN모델만 집중해서 살펴보자. 이 모델은 layer가 ..
딥러닝의 인공 신경망(ANN,DNN,CNN)에 대하여 딥러닝은 인공 신경망을 기초로 하고 있다. 인공 신경망이라고 불리는 ANN은 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘이다. 인간의 뇌에서 뉴런들이 어떤 신호나 자극을 받고 그 자극이 어떠한 Threshold값을 넘어서면 결과신호를 전달하는 과정 에서 착안 한 것이다. 여기서 들어오는 자극이나 신호를 input으로 하고 Threshold값은 weight, 결과를 내는것이 Output 이다. 그림을 통해 관찰해보자. 왼쪽의 그림이 ANN이고 오른쪽의 그림(2개 이상의 은닉층)이 DNN이라고 보면 될 것 같다. 이 두개의 모델은 weight를 가지는 선형 모델이라고 생각하면 된다. 무슨 얘기냐면, 왼쪽의 그림처럼 2개의 인풋값을 x[0],x[1] 이라고 하면 y=w[0]x[0]+w[0]x[..