전체 글

전체 글

    리눅스 - 센드메일 서버 구현 1

    리눅스 - 센드메일 서버 구현 1

    이 페이지에서는 센드메일 서버를 만들어보겠다. 센드메일 서버의 개념은 마지막에서 정리할 것이다. 안되는 부분이 막혀서 이틀동안 삽질 했기에 이미지 수정이 많다. 본래는 네이버와 다음으로 테스트를 했는데 무슨 이유인지 네이버가 테스트가 안되길래 yandex와 nate로 바꾸어서 테스트를 했다. 메일을 보내는 역할을 하는 서버1 (마스터 네임 서버도 겸한다)메일을 받는 역할을 하는 서버2 클라언트 2개 총 4대의 VMware로 진행하였다. 먼저 서버1(yandex) 설정 yum -y install sendmail 먼저 센드메일을 깔자 다음은 hostname을 바꾸자 hosts에 mail.yandex.com 을 추가하자 테스트 겸 내 자신한테 메일을 보낼 건데 그때 사용할 것이다. 로컬 호스트 네임에 mail..

    이펙티브 자바 규칙 2 - Builder 패턴

    클래스를 만들 때 가장 기본이 되는 건 생성자는 만드는 일일 것이다. 생성자로 객체를 만들어 전달하는 건 컴퓨터 자료관리의 기본이다. 여기 영양소를 관리하는 클래스를 만든다고 가정해보자 public class NutritionFacts { private int calories; private int fat; private int sodium; private int carbohydrate; . . . }이런 식으로 만들게 될 것이다. 가장 기본적인 방법은 그냥 생성자를 만드는 일이다. public NutritionFacts(int calories, int fat, int sodium, int carbohydrate) { this.calories = calories; this.fat = fat; this.s..

    리눅스 - 라운드 로빈 서버

    리눅스 - 라운드 로빈 서버

    웹서버에 대량의 접속이 생기면 과부화가 생긴다. 이 과부화를 막아주기 위해 서버는 같은 웹사이트로 연결해주는 IP를 다수 가지고 있다가 접근이 있으면 그 해당 사이트로 연결해주는 방식이 라운드 로빈 방식이다. 리눅스에서 nslookup 하고 네이버나 다음을 때려보자 주소가 두개 돌아온다. 어느 주소든 접근하면 네이버나 다음으로 접근이 가능하다. 이처럼 한 접근에 대해 연결해주는 주소를 두개 이상 가지게 되면 부화가 분할되는 장점이 있다. 브라우저에서 네이버나 다음을 치게되면 저 두 IP가 무작위로 접근이 될 것이다. 테스트를 한번 해보자 이전 포스트에서 만든 vi /var/named/centos.com.db 를 수정해보자 위에서부터 yes24, 다나와, 네이트의 IP 이다. 이렇게 하면 이 네임서버를 사..

    리눅스 - 마스터 네임 서버 만들기

    리눅스 - 마스터 네임 서버 만들기

    이전 포스트에서 캐싱네임서버를 만들어보았다. 캐싱네임서버는 루트네임서버를 통해 IP주소를 전달받는 형식이었지만 이번에 만들 마스터네임서버는 직접 설정한 IP주소를 db를 조회해서 그에 기록된 IP 주소를 직접 반환하게끔 만들어 보도록 하겠다. 먼저 httpd를 깔고 구동시켜주자 그리고 firewall-config 에 들어간다. http를 체크하고 재불러오기 그리고 vi /var/www/html/index.html 로 원하는 텍스트를 편집하자. 나중에 우리가 띄어줄 메시지이다. ftp 서버까지 동시에 실습할 것이다. 때문에 다른 서버컴퓨터를 준비한 뒤(내 경우에는 다른 가상 서버 머신) yum -y install vsftpd 명령어로 ftp 서버를 깔아주자. firwall-cmd --permanenet -..

    리눅스 - 도메인 체계, 캐싱전용네임서버 만들기

    리눅스 - 도메인 체계, 캐싱전용네임서버 만들기

    도메인의 개념이다 이전 포스트에서 만든 그림에 더 붙여서 만들어봤다. 네임서버에서 해당하는 문자열에 상응하는 IP가 있을 경우 그 값을 돌려준다 이전포스트에서설명했다. 만약 돌려줄 값이 없다면? 접근실패로 끝나는가? 아니다. 네임서버에서 없을 경우 네임서버는 루트 네임서버에 요청한다. www.naver.com 일 경우 루트네임서버에 요청하고 루트 네임서버는 com 을 기반으로 다른 네임서버에 정보를 전달한다. com네임서버는 naver를 기반으로 정보를 넘겨줄 다음 네임서버를 찾을 것이다. 이렇게 반복해서 주소값을 특정하는 것이 가능해졌을 때 ip주소를 넘겨주고 웹페이지에 접근이 가능하게 되는 구조다. 그렇다면 리눅스에서 캐싱 전용 네임서버를 구축해보겠다. 어떠한 설정도 하지 않을 것이므로 이 서버는 루..

    이펙티브 자바 규칙 1 - 정적 팩토리 메소드

    이펙티브 자바 규칙 1 - 정적 팩토리 메소드

    자바에서 객체를 만들 때 가장 많이 사용하는 방법은 생성자를 부르는 것이다. 생성자 이외에도 인스턴스 정보를 보내주는 다른 방법이 있다. 책을 읽으면서 나름의 예제코드를 만들어보았다. 만든 예제코드로 한번 알아보자 먼저 예제로 이용할 클래스들이다. package homework; public class Tv { String screen;String audio;int button; public static Tv newInstance(String type){if (type.equals("SmartTv")) {return new SmartTv();} else if (type.equals( "NormalTv" )) {return new NormalTv();}return null;} public void test..

    리눅스 - 네임 서버 개념, ip 주소 획득 경로

    리눅스 - 네임 서버 개념, ip 주소 획득 경로

    우리가 인터넷을 사용할 때 흔히 www.naver.comwww.daum.com 이런 형식으로 접속한다. 본래 각 웹 홈페이지에 접속할 때는각 고유의 IP주소를 사용한다. 이런 IP주소를 문자열로 사용할 수 있게끔도와주는 역할을 하는 것이 네임서버, DNS 이다. 리눅스에서 연습을 해보자 터미널에서 nslookup을 해보자 nslookup 에서 www.naver.comwww.daum.com 등을 하면 아이피 주소가 나타나게 된다. 이 ip주소를 직접 입력하게 되면웹 홈페이지가 나오게 된다. 예를 들어 네이버는 125.209.222.141 이다. 네이버가 나온다. 이 주소는 일반적으로 네임 서버를 이용해서 ip주소를 받게 된다. www.naver.com 이라고 입력하는 순간 네임서버로 www.naver.co..

    리눅스 - SSH, VNC CentOS, 윈도우

    리눅스 - SSH, VNC CentOS, 윈도우

    저번 포스팅에서는 텔넷을 연습했다. 이번엔 ssh를 연습할 것이다. 텔넷보다 보안성이 더 뛰어난 것으로 알려져 있다. rpm -qa | grep openssh 먼저 ssh가 깔려있는지 확인한다.깔려있는 것을 확인할 수 있다. systemctl status sshd현재 작동중인지 확인한다. 3,4를 보면 작동 중임을 확인할 수 있다. centos에서 ssh는 기본으로 작동하는 듯하다. firewall-config로 ssh가 예외처리 되어있는지도 확인해보자 예외처리되어있다. 다음은 다른 centos에서의 접근법을 알아보자 마찬가지로 1로 설치가 되어있는지 확인하고 2로 접속을 시도하자 ssh 아이디@아이피 방식이다. 비밀번호를 입력하면 접속이 가능하다. 다음으로 윈도우에서 테스트를 해보자 윈도우에는 ssh가..

    리눅스 - 텔넷(telnet) 서버, 클라이언트 설치 및 실습

    리눅스 - 텔넷(telnet) 서버, 클라이언트 설치 및 실습

    텔넷은 원격 조종을 가능케 하는 툴이다. 만약 서버 A 컴퓨터와 B 클라이언트가 있다고 하자 A와 B는 물리적으로 거리가 멀다. 이 때 B가 A의 서버컴퓨터에서 작업을 하고 싶을 때 사용하는 툴이다. A가 먼저 텔넷 서버를 깔아두고원격 조작을 가능하게끔 ID와 PW를 만들어둔다 B는 텔넷 클라이언트를 통해 A의 IP로 텔넷 서버에 직접 접속 한 후로그인을 하고 A 서버에서 작업을 하는 로직이다. WMware에서 한번 실습해보자 먼저 서버컴퓨터에서 텔넷 서버를 깔자 rpm -qa | grep telnet 으로 텔넷이 깔려있는지 확인하고 아무것도 나오는게 없다면 yum -y install telnet-server 로 서버설치 1은 텔넷 서버를 실행하는 것이다.(꺼져있다면 실행하고, 켜져있다면 재시작한다) 2..

    리눅스 - 쿼터(사용자별 공간 할당)

    리눅스 - 쿼터(사용자별 공간 할당)

    같은 하드에 다른 사용자들이 여렷 있어 동시에 같은 하드를 사용하면 디스크 경합이 일어날 수 있다 이런 점을 예방하기 위해 하드 공간에 사용자를 할당해 별도의 하드를 사용하게끔 만드는 방법이 있다 그 방법이 리눅스 centos에서 쿼터라고 한다. VMWare에서 실습을 해보도록 하겠다. 먼저 하드를 만들어주자 이전 포스트들에서 여러번 한 하드 설정 및 포맷 작업이다. 쭉 진행해주자. 하드 작업이 끝나면 디렉토리를 만든 후 마운트 하고 fstab에서 설정을 해주자. 재부팅시 초기화 방지 설정 실습에 사용할 유저를 만들자 두개 만들고 비밀번호도 설정해준다 하드를 쿼터로 만들어보자 아까 들어갔던 vi/etc/fstab에 다시 들어가서 defaults,usrjquota=aquota.user,jqfmt=vfsv0..

    리눅스 - RAID 시스템에 CentOS 설치

    리눅스 - RAID 시스템에 CentOS 설치

    여지껏 추가된 하드를 RAID로 묶는 작업은 이전 페이지에서 많이 했지만 첫 설치때부터 RAID를 사용한적은 한번도 없었다 리눅스 시스템을 처음 시작할 때부터 RAID로 하는 실습을 이 페이지에서 하도록 하겠다. VirtualVM에서 가상머신을 추가한다. 리눅스CentOSnext 차례대로 클릭 중간에 나오는 용량은 80G로 했다 공간이 부족하다면 20~30G선에서 해도 될것이다. 1. 먼저 하드를 만들자. RAID1로 만들 것이기 때문에똑같은 크기의 하드가 필요하다. 2. CD롬에 CentOS iso를 추가해준다. 3. OK 클릭 그리고 부팅을 하면 CentOS 설치가 나올 것이다 소프트웨어는 그놈으로 설정하고인터넷을 연결해주고 시스템 - 설치대상으로 들어간다. 하드를 두개 다 클릭하고 파티션을 설정한다..

    리눅스 - LVM(Logical Volume Manager) 구현

    리눅스 - LVM(Logical Volume Manager) 구현

    LVM을 구현해보도록 하자 LVM은 하드 디스크 두개를 묶어 하나의 그룹으로 만든 다음 파티션을 나누듯이 일정 크기로 잘라내는 하드 구분하는 관리형태이다. 그림과 같이 2TB 3TB로 된 하드를 하나로 묶어 볼륨그룹으로 만든 다음 3개의 논리그룹으로 나눌 것이다. 먼저 하드를 만들자 두개를 뚝딱 테스트이기 때문에 2g와 3g로 만들었다. 부팅 후 ls -l /dev/sd* 로 검색을 해보자 설정 안된 하드가 있을 것이다. 그 하드를 fdisk 명령어로 설정해주자 거의 디폴트값으로 진행해주면 되는데 하드의 System은 Linux LVM으로 만들어줘야한다. LVM의 헥사코드는 8e이다 이부분만 유의하도록 하자. sdc 하드도 똑같은 작업을 해주자. 그리고 하드를 물리볼륨으로 만들어줘야한다. 볼륨그룹으로 만..

    python으로 그래프 만들기 - pycharm

    python으로 그래프 만들기 - pycharm

    파이썬에서 그래프를 만들기 위해서는 numpy, matplotlib 과 같은 라이브러리가 필요하다. pycharm에서 file - setting - project: lab-python 으로 들어간다. 그리고 + 버튼을 클릭하고 pandas를 검색한다. 인스톨하자 matplotlib도 검색한다. 인스톨한다. 그 다음 csv 샘플 파일을 인터넷이든, 자신의 파일이든 하나 구해오자 그리고 아래와 같이 자신의 패키지에 넣어주자. 샘플파일을 넣었으면 코드를 한번 짜보자 """ python에서 데이터 분석을 할 때 자주 사용되는 패키지: numpy, pandas, matplotlib, cipy """ from pandas.io.parsers import read_csv import matplotlib.pyplot ..

    python에서 Oracle Instant Client 사용하기

    python에서 Oracle Instant Client 사용하기

    파이썬에서 oracle 데이터베이스에 접근하기 위해서는 window 운영체제에서오라클 데이터베이스에 연결해주는 dll 파일이 필요하다. 자바 개발환경에서는 jdbc.jar 파일이 이 기능을 해주나 파이썬의 경우 별도의 연결 작업이 필요하다. 이럴 때 사용하는 것이 OracleInstantClient이다, http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 이 링크에서 자신의 운영체제와 오라클 버전에 맞는 instantClient를 다운받도록 하자 적당한 디렉토리에 넣어두자 그리고 위의 경로를 복사해 두자. 다음은 환경변수를 설정해야 한다. 본인의 컴퓨터 아이콘 우클 속성에 들어간다. 그 후 아래의 과정을 ..

    Python 개발환경 설치

    Python 개발환경 설치

    먼저 파이선 홈페이지에 들어간다 https://www.python.org 다운로드 탭에 들어간다 2버전과 3버전이 있는데 3버전을 다운받자 2버전은 서비스가 종료한다고 한다 다운받아서 설치한다 path를 추가하도록 하자. 안그러면 환경변수를 따로 지정해주는 수고로움을 겪어야 한다. 설치하고 테스트 삼아 IDLE 들어가보자 print("Hello, Python!") 파이썬은 컴파일 필요없는 인터프리터 방식(스크립트 언어)의 언어이다다른 스크립터 언어로는 R이 있다. 잠깐 짚고넘어가는 간단한 인터프리터 설명(feat.위키백과) 다음으로 개발 툴을 다운받자 나는 jetbrains 좋아해서 jetbrains phycharm을 다운받을 것이다. 이클립스가 편한 사람들은 이클립스를 다운받도록 하자. https://..

    R - text mining 텍스트 마이닝 만들기

    R - text mining 텍스트 마이닝 만들기

    이 포스트에서는 데이터마이닝에 구축에 대한 것을 배울 것이다. 데이터 마이닝이랑 아래와 같은 형태의 통계지표를 이야기한다.관심빈도가 높을 수록 글자 크기가 크며, 낮을수록 작다. 통계 공공 포털 등에서 많이, 자주 활용하는 방법 중 하나이다. 먼저 분석할 데이터를 텍스트 형태로 워크스페이스에 넣는다. 실력만 있다면 다른형태의 데이터를 가져와서 가공해도 된다.(참고서에서 가져온 데이터라, 내가 배포해도 되나 싶어서 첨부하지 않는다.) 데이터가 없다면 적당히 웹에서 긁어서 실습해보도록 하자. 다음으로 코드를 기록해보도록 하자 처음으로 관련 패키지를 다운받아야한다. 순서대로 설치하고 메모리에 올리자. 빠샤 KoNLP는 자바 가상머신을 활용하는 함수들을 포함하고 있기에 자바 환경이 구축되어 있어야한다. 만약 구..

    R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등

    R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등

    저번에는 벡터를 살펴보았지만이번 포스트에서는 매트릭스와 데이터 프레임을 살펴보도록 하겠다. 코드 m1

    R에서 벡터(테이블, 행,열) / seq, rep 함수 이용

    R에서 벡터(테이블, 행,열) / seq, rep 함수 이용

    코드를 하기 앞서 기본적인 R의 용어부터 정리하자. 모든 자료구조의 테이블에서는 부르는 명칭이 다르다. 데이터베이스의 경우 레코드, 필드, 컬럼 등으로 부르고 데이터 마이닝이나 머신러닝을 하는 사람들은 examples, attributes 라고 부른다 R의 경우는 observations, variable로 부른다. 실체 조사한 관측치를 중점으로 잡는 통계언어 답다는 생각이 든다. R은 실측치를 다루는 만큼 1차원배열, 2차원배열, 3차원 이상의 배열을 부르는 용어도 다 다르다. 우리는 우선 먼저 vector에 대해 알아볼 것이다. 하지만 R의 용법 겉핥기 수준이니 자바 c등 기타언어를 접해보신 분들은문법 알아보기 수준일 것이다. 사실 이전 포스트에의 weight가 vector이다. 코드 결과 값 x에 1..

    R 변수 선언과 데이터 출력

    R 변수 선언과 데이터 출력

    먼저 R의 경우 주석은 앞에 # 을 붙이면 된다.C, 자바 등의 // 같은 표시다. R의 경우 변수 선언을 x

    R과 R studio 다운과 초기 설정

    R과 R studio 다운과 초기 설정

    R을 시작하기 위해서는 먼저 R언어 패키지와 그 R을 처리하는 스튜디오 프로그램이 필요하다. Rhttps://cran.r-project.org/ R Studiohttps://www.rstudio.com/products/RStudio/#Desktop JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html jdk 는 다른 개발환경에서도 많이 사용하니 설치되어있는 사람은다운받지 않아도 된다. 나는 패키지는 RStudio 내부에서 코드로 다운받을 것이다.미리 필요한사람은 다운받도록 하자. R은 들어가서 저 버튼을 클릭하여 다운받으면 된다. R 스튜디오의 경우 다운로드 버튼 클릭 클릭 자기 OS에 맞추어서 다운받으면 된다. 둘다 디폴트로 쭉쭉 ..

    Spring - 파일 업로드 하기

    Spring - 파일 업로드 하기

    스프링 프레임 환경에서 파일 업로드 하는 법을 기록하도록 하겠다. 먼저 https://search.maven.org 에 접속하도록 하자 fileupload라고 치면 이러한 결과가 나온다 commons-fileupload의 버전명을 클릭하자 그러면 이러한 화면이 나온다 우리는 아파치 메이븐을 사용할 것이므로 저 코드를 복사하여 pom.xml에 붙인다. 귀찮은 사람들을 위해 여기도 남긴다. commons-fileupload commons-fileupload 1.3.3 이제 라이브러리 추가는 됬고 dispatcher-servlet.xml 을 찾아가자 (intellij의 경우 servlet-context.xml) 빈즈 안에 위와 같은 코드를 쳐놓는다.스프링이 멀티파트 영역을 관리하게끔 빈으로 설정해놓는것이다. ..

    게시판 페이징 처리에 대해서

    처음 게시판을 만들 때 가장 고민되는 것은 역시 페이징 처리를 어떻게 하느냐의 문제일 것이다. 이 페이지에서는 그 부분을 다뤄보도록 하겠다 먼저 우리는 페이지의 기준을 잡아야한다. 현재 페이지가 몇페이지인지, 페이지에 몇개의 게시글을 보여줄 것인지를모니터링 하는 클래스를 하나 만들자 public class PaginationCriteria { private int page; // 현재 보고 있는 페이지 private int numsPerPage; // 한 페이지에 보여줄 게시글 갯수 public PaginationCriteria() { this.page = 1; this.numsPerPage = 10; } public PaginationCriteria(int page, int numsPerPage) { ..

    Spring에서 mybatis 사용법

    Spring에서 mybatis 사용법

    mybatis는 sql 명령어를 관리해주는 편리한 라이브러리이다. sql 명령어를 매번 우리는 문자열로 지정해서 하나하나 적어주는 방식을 취했을 것이다. 이러한 명령어는 유지보수에서도 많은 노력이 필요할 가능성이 높고, 효율성이 떨어진다. 때문에 mybatis를 통해 관리해 주는 것이 좋다. 메이븐 스프링 개발환경에서는 설정도 간단하다. 먼저 pom.xml에 라이브러리를 추가하도록 하자 org.mybatis mybatis 3.4.5 org.mybatis mybatis-spring 1.3.1 org.springframework spring-jdbc ${org.springframework-version} mybatis와 mybatis를 연동하는 스프링 그리고 스프링과 jdbc를 연결하는 라이브러리이다. my..

    intellij 에서 JRebel 추가하기

    intellij 에서 JRebel 추가하기

    intelliJ에서 스프링을 코딩하다 보면 컨트롤러는 어쩔 수 없더라도 jsp가 업뎃이 안되는게 참 짜증난다. 이클립스는 조금 느려도 자동으로 서버가 재시작되는데 intellij는 그런 기능이 없다.(내가 못찾는 것일지도) 때문에 JRebel을 이용하면 좋다. JRebel은 좋기 때문에(?) 상용 소프트웨어이다. 영리 목적을 위해서는 구입을 해야되지만 학생이나 개인이 영리목적이 아닌 사유로 사용할 때에는 무료로 제공해주고 있다. 그 사용방법을 정리한다. 먼저 https://my.jrebel.com/ 접속하자 이런 페이지가 나온다 페이스북이나 트위터로 생성해서 받도록 하자 로그인 하자. 없다면 페이크계정이라도 하나 만들자. 페이스북 인증만으로도 개발자는 많은 툴의 인증을 받을 수 있다. 그리고 캡쳐는 없으..

    링크 저장

    http://www.sys4u.co.kr/Mail/ECTrendReport/20130524/20130524-05.htm 자료의 시각화

    안드로이드 복습 1 - Text와 Button 띄우기

    안드로이드 복습 1 - Text와 Button 띄우기

    안드로이드 배운 자료를 처음부터 복습하려는 마인드로 진행하려고 한다. 내가 보기 편하게 작성할 생각으로 진행할 것이니 아마 다른사람도 보기 쉬울 것이라 생각한다.웹은 중간부터 적기 시작해서 처음보는 사람들은 좀 힘들 것이라 생각했는데안드로이드의 경우 무리 없이 따라할 수 있을 것이라 생각한다. 안드로이드 스튜디오 설치 및 환경 설정의 경우 다른 게시물이 많으니 생략한다그리고 나는 자바언어로 진행할 것이다. 먼저 설치와 세팅을 끝냈으면 이런 페이지일 것이다. 프로젝트를 생성하자. 어플리케이션 이름은 앱의 이름을 의미한다. 적당히 지우주자. 근데 3에서 보이듯이 공백이 들어간게 안되는 건 아니지만 개발 도구에 문제를 일이킬 수도 있으니 공백은 되도록 빼는게 좋다. 2는 프로젝트 경로를 말한다. 적당히 설정해..

    Spring 프레임워크에서 Oracle을 사용하기

    Spring 프레임워크에서 Oracle을 사용하기

    이번 페이지에서는 스프링 프레임워크에서 오라클을 사용하기 위한 방법에 대해 기록할 것이다. 스프링에서 오라클을 사용하기 위해서는 먼저 Oracle JDBC driver를 로컬 메이븐 저장소에 추가해주어야 한다. 왜 maven이 드라이버를 직접 추가하지 못하나 의문이 들어 찾아보았더니 maven과 oracle의 저작권 문제 때문이라는 글을 보았다. maven에서 oracle 드라이버를 직접 활용한다면 법률분쟁의 소지가 있어 우리가 메이븐 인스톨러를 직접 다운 받고, 레포지토리에 추가해줘야 해주고 라이브러리로 참고해야한다는 이야기이다. 순서대로 해보자 먼저 메이븐 인스톨러를 다운받는다 https://maven.apache.org/download.cgi 밑의 파일을 다운받아 준다. 그리고 적당한 곳에 압축을 ..

    junit을 통한 테스트 클래스 만들기

    junit을 통한 테스트 클래스 만들기

    이클립스던 intellij던 Spring을 만들었을 때디렉토리에 test라는 폴더가 보였을 것이다 이 테스트 폴더에 우리가 클래스를 생성하여테스트 서버를 설정하여 자료의 입력이 정상적으로 구동되는지 확인할 수 있다. 만약 실무에서UI 담당자가 일처리를 늦게해 UI를 이용할 수 없다면 자바 개발자가 기껏 코드를 만들어도 테스트 할 수 없는 경우가 생길 것이다. 이러한 상황에 대처하기 위해 Test클래스를 이용하는 것이다. 먼저 Test클래스를 위한 junit 라이브러리를 다운받도록 하자 junit은 이전에 포스팅 했던 MVNrepository에서 다운이 가능하다 https://mvnrepository.com/search?q=junit 여기서 다운을 할 수 있다 클릭해서 들어가서 추가하도록 하자 메이븐 코드..

    @ResponseBody, jackson-databind 라이브러리 활용

    @ResponseBody, jackson-databind 라이브러리 활용

    이 포스팅에서는 @ResponseBody와 jackson을 활용해보도록 하겠다. 코드는 다음과 같다. @Controller public class controller3 { private static final Logger logger = LoggerFactory.getLogger(controller3.class); @RequestMapping(value = "/rb-test") @ResponseBody public String testString() { logger.info("testString() 호출"); return "Hello, Spring!"; } @RequestMapping(value = "/json-test") @ResponseBody public Product testJson() { log..

    MVC Patterns 기본적 컨트롤러 생성 / redirect 활용

    MVC Patterns 기본적 컨트롤러 생성 / redirect 활용

    여기서는 저번에 생성한 프로젝트를 바탕으로 기본적인 패턴을 연습삼아 만들어 보도록 하겠다. 밑의 product를 먼저 이야기하자면 private int pid; // 상품아이디 private String pname; // 상품 이름 private int price; // 상품 가격 이런 형태의 모델 클래스이다.getter/setter와 생성자는 길어서 뺏다. 저번에 만든 컨트롤러 클래스에서 controller를 만들었다.코드는 아래와 같다. @Controller public class controller { // 1 private static final Logger logger = LoggerFactory.getLogger(controller.class); // 2 @RequestMapping(value..