제어의 역전 - 프로그램의 제어 흐름 구조가 뒤바뀌는 것 일반적 프로그램의 흐름은 main() 메소드와 같이프로그램이 시작될때 다음에 사용할 오브젝트를 결정하고결정한 오브젝트를 생성하고 생성된 오브젝트의메소드를 호출하고 그 오브젝트 메소드 안에서 다음에 사용할것을 결정하고 호출하는 식의 작업이 반복됨 제어의 역전은 오브젝트가 자신이 사용할 오브젝트를스스로 선택하지 않음.생성하지도 않음. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 떄문이다. 제어의 역전 개념은 이미 많이 적용되어있다.대표적으로 서블릿 서블릿은 개발을해서 서버에 배포할 수는 있지만그 실행을 개발자가 직접 제어할 수 있는 방법이 없다대신 서블릿에 제어 권한을 가진 컨테이너가 적절시점에 서블릿 클래스의 오브젝트를 만들고그 안의 메소드..
회사 입사 후 JSP 서블릿과 오라클만 사용해게시판을 만들었다. 1년 6개월 정도만에 서블릿을 사용했다. 너무 오랜만이라 기억이 안나서다시 공부하면서 만들었다. 역시 뭘 하든 셋팅이제일 오래걸리고 힘들었다. 게시판 제작 첫 날은JDBC도 제대로 설정 못하고 퇴근했다.이클립스도 처음에 잘못 설치해서 삭제하고다시 다운받고..... 서블릿만 사용해 게시판을 만들어보며스프링과 마이바티스가 정말 개발을 할 때 편리하단걸느낄수 있었다. (원래 알고있었지만 이 일로 인해 직접적으로 느꼈다.) 난 처음 웹 개발 공부를 할 때자바-> 자바스크립트 -> 스프링+마이바티스 ->JSP 서블릿이 순서로 공부를 했다. 자바스크립트 공부를 하고 JSP도 제대로모르는데 그냥 바로 스프링으로 넘어갔다.원래대로라면 스프링 공부전에 JS..
페이징을 구현하기 위해 먼저 페이징 VO를 만들어 줬다. 위처럼 6개의 필드를 생성해줬다. 위에 VO는 공통 VO이다. 각 페이지마다 페이징이 다르기 때문에공통으로 뺀 후 아래처럼 다른 VO에서 CmmnVO를상속받아 사용하게 했다. 이제 게시글 리스트 커맨드를 보자. (page 값의 출처는 맨 아래에 있다)화면단에서 넘어온 "page"를 받아 parsePage에 넣은 후 null값이면 1을 넣어줬는데 게시판의 현재 위치한page에 값이 없다면 1페이지로 이동할 수 있게하기 위함이다.다음 CmmnVO에서 page를 long으로 선언했기 때문에String형은 parsePage를 long으로 형변환 시켜줬다. 다음 ArrayList의 PagingList를 만들어 줬다. BoardDto에는 게시글에 들어갈글 번..
JSP를 이용해 페이징을 구현해보자. 여기서 내가 말하는 JSP를 이용한 페이징은JSP와 오라클DB만을 이용한 페이징이다.스프링과 MyBatis를 사용하지 않았다. 인터넷에 JSP 페이징을 검색해보면대부분이 mysql을 이용하거나DB를 사용하지 않거나 혹은스프링, MyBatis등을 이용한 글 밖에없다. 때문에 이 글을 내 블로그에 포스팅하여JSP를 공부하는 많은 사람들에게도움이 됐으면 좋겠다. JSP 페이징을 만들때 페이징 소스는내가 9개월 전에 올렸던 SPRING 에서 Mybatis를이용한 페이징 구현하기 글을 보면서작업했다. (스프링 페이징 게시글)http://rwd337.tistory.com/83?category=650717 페이징에 대한 로직 설명은위 게시글 링크에 들어가서 확인할 수 있다. JS..
이벤트 버스는 개발자가 지정한 2개의 컴포넌트 간에데이터를 주고받을 수 있는 방법이다.이전 포스팅에서 컴포넌트간 통신은 항상 상위-하위구조를 유지해야 데이터를 주고받을 수 있었다.이벤트 버스를 사용하면 이런 상위-하위 관계를유지하고 있지 않아도 데이터를 한 컴포넌트에서다른 컴포넌트로 전달할 수 있다. 먼저 아래 그림을 보자. 최하위에 있는 하위컴포넌트B에서 상위 컴포넌트A로데이터를 전달하려면 Vue에서 제시하는 기본적인컴포넌트 통신 방식을 생각해야한다.하위컴포넌트B 상위컴포넌트B 최상위컴포넌트를 거쳐서상위 컴포넌트A까지 가야한다. 하지만 웹이 커져컴포넌트가 많아지면 이런식의 데이터 전달 방식은 번거롭다.이럴 경우 이벤트버스를 사용하면 중간 컴포넌트들을 거치지 않고하위컴포넌트B 에서 바로 상위 컴포넌트A로..
오랜만에 스프링 카테고리에 글을 쓰는것 같다.이번 포스팅에서는 자동로그인 방지 기능이 되겠다. 먼저 어떤 사이트에서 로그인을 할때 위 이미지 와 같은자동 로그인 방지 기능들을 본적이 있을것이다. 굉장히 유용 하니 한번 알아보자. 먼저 위의 기능을 캡차 라고 부른다. CAPTCHA란?HIP 기술의 일종으로 어떠한 사용자가실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해사용되는 방법이다. 사람은 구별할 수 있지만 컴퓨터는구별하기 힘들게 의도적으로 비틀거나덧칠한 그림을 주고 그 그림에 쓰여 있는 내용을물어보는 방법이 자주 사용된다. 이것은 기존의 텍스트와 이미지를일그러뜨린 형태로 변형한 후 인식 대상이 변형된이미지로부터 기존 이미지를 도출해 낼 수 있는지를확인하는 방식의 테스트이다.컴퓨터 프로그래밍이 변형시킨..
iframe(아이프레임) 이란 내부 프레임 이라는 의미로 하나의 HTML 문서내에서 다른HTML문서를 보여주고자 할때 사용된다.일반적인 프레임(frame)과 비교해보면아이프레임은 태그 사이에올 필요가 없으며 독립적으로 마치태그를사용하듯 문서내의 원하는 위치에 삽입할 수 있다. iframe 은 HTML과 더 관련이 있어서내 블로그 HTML카테고리에 넣고싶지만.HTML카테고리가 없고 전자정부프레임워크를사용해서 테스트 해봤기에 그냥전자정부 프레임워크 카테고리에 글을 올렸다. 먼저 iframe 으로 유튜브 동영상을 넣는법을알아보자. 방법은 굉장히 쉽다. 먼저 유튜브에 들어가서 사용하고싶은 동영상을 찾자. 다음 동영상에 마우스 우클릭후 소스코드 복사 를 누른다. 다음 복사된 소스 코드를 메모장에 붙여넣는다. 소스..
현재 대학교 4학년 마지막 학기를 다니고 있다. 마지막 학기를 듣는 수업중 하나가Vue.js 수업이다. Vue.js를 기존에 들어보기만 했지직접 사용해보진 않았기 때문에좋은 기회라고 생각하고 수업중에 열심히 공부하고 있다. Vue.js는 프런트엔드 프레임워크이다.나는 처음에 웹개발이란 것을 하려고 할때백엔드 쪽으로 가야겠다 생각하고 웹 공부를 했다. 하지만 요즘 개발자분들의 얘기를 들어보면백엔드와 프런트엔드의 구분이 조금 애매모호해져가고 있다고 한다. 왜냐하면 기존 백엔드를 개발하시던분들이 프런트엔드를 공부하고 프런트엔드를 개발하시던분들이 백엔드를 공부하고 있다고 한다. 그래서 요즘 웹 개발을 제대로 하고 싶다면둘다 공부 하라고 한다.다른 나라는 어떤지 몰라도 우리나라 에서는 현재둘다 알아야 하니 둘다 ..