리팩토링은 기존의 코드를 외부의 동작방식에는변화없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 말함.리팩토링을 하면 코드 내부의 설계가 개선되어코드를 이해하기 좋아지고 변화에 효율적으로 대응할 수 있다. 코드의 품질이 올라가고 유지보수가 용이해진다.ex) 중복코드를 없에는 작업 상속을 통한 확장추상메소드 사용하기추상클래스로 만든 나의 UserDao 클래스를옆에 친구에게 준 후 이 친구도 내가 만든UserDao클래스를 사용할 수 있게 해줘야한다. 그럼 이친구는 나의 UserDao 클래스를 상속해서자기 마음대로 서브클래스를 만들어 사용하면 된다.서브클래스에서 내 UserDao클래스 안에 있는 추상메소드로 선언한 getConnection() 메소드를원하는 방식으로 구현해 사용할 수 있다. 이렇게 함으로..
회사 입사 후 JSP 서블릿과 오라클만 사용해게시판을 만들었다. 1년 6개월 정도만에 서블릿을 사용했다. 너무 오랜만이라 기억이 안나서다시 공부하면서 만들었다. 역시 뭘 하든 셋팅이제일 오래걸리고 힘들었다. 게시판 제작 첫 날은JDBC도 제대로 설정 못하고 퇴근했다.이클립스도 처음에 잘못 설치해서 삭제하고다시 다운받고..... 서블릿만 사용해 게시판을 만들어보며스프링과 마이바티스가 정말 개발을 할 때 편리하단걸느낄수 있었다. (원래 알고있었지만 이 일로 인해 직접적으로 느꼈다.) 난 처음 웹 개발 공부를 할 때자바-> 자바스크립트 -> 스프링+마이바티스 ->JSP 서블릿이 순서로 공부를 했다. 자바스크립트 공부를 하고 JSP도 제대로모르는데 그냥 바로 스프링으로 넘어갔다.원래대로라면 스프링 공부전에 JS..
토비의 스프링 이란 책을 구매했다. 웹 개발자를 준비하거나 현재 개발자로 일하시는 분들이라면누구나 한 번쯤 들어보고 읽어보는 책이다.스프링 책에서 거의 끝판왕이라 불리는 책이다. 저번주 월요일에 구매를해서 수요일에 책을 받았다.책을받아보니 왜 끝판왕이라고 불리는지 알 수 있었다.일단 책이 엄청 두꺼웠다 2권 다...책을받고 목차만 보고 아직 제대로 읽어보진 않았다. 목차를 보고 느낀거지만 스프링에 대한기본적인 내용과 좀 어려워보이는 부분(?) 까지자세하게 다루는 것 같다. 일단 현재 자바스크립트와 제이쿼리를 복습 차원에서다시 공부 중이라 이 공부가 끝나면 그때부터토비의 스프링을 읽고 공부하며 블로그에 조금씩 포스팅을 할 계획이다. 이 책을 알게된건 2017년 1월 이였다.스터디를 다니며 스프링 공부를 할..
이번엔 중소기업에서 면접을 볼때 듣게되는 질문들이다이 질문 들은 실제 최근에 취업 면접을 봤던지인들에게서 얻어낸 정보이다!!!물론 인터넷 커뮤니사이트에서 얻어온 정보도 있다. 자기가 대기업 준비를 하고있지 않다면 꼭 읽어보자면접에 꼭 도움이 될 수 있는 질문들 일것이다.답은 자기가 알아서 책을 보던 구글링을 하던질문에 맞는 자기만의 답을 구하자!!!!!! 1.OOP 란?2.객체 란? 3.추상화, 캡슐화, 상속성, 다형성 에대해 얘기해보라.4.추상클래스와 인터페이스의 차이점은?5.오버로딩이란?6.오버라이딩이란?7.오버로딩과 오버라이딩의 차이점은?8.어레이 리스트란?9.링크드 리스트란?10.어레이 리스트와 링크드 리스트의 차이점은?11.스트링버퍼와 스트링빌더의 차이점은?12.GC에 대해 얘기해보라.13.pr..
오랜만에 스프링 카테고리에 글을 쓰는것 같다.이번 포스팅에서는 자동로그인 방지 기능이 되겠다. 먼저 어떤 사이트에서 로그인을 할때 위 이미지 와 같은자동 로그인 방지 기능들을 본적이 있을것이다. 굉장히 유용 하니 한번 알아보자. 먼저 위의 기능을 캡차 라고 부른다. CAPTCHA란?HIP 기술의 일종으로 어떠한 사용자가실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해사용되는 방법이다. 사람은 구별할 수 있지만 컴퓨터는구별하기 힘들게 의도적으로 비틀거나덧칠한 그림을 주고 그 그림에 쓰여 있는 내용을물어보는 방법이 자주 사용된다. 이것은 기존의 텍스트와 이미지를일그러뜨린 형태로 변형한 후 인식 대상이 변형된이미지로부터 기존 이미지를 도출해 낼 수 있는지를확인하는 방식의 테스트이다.컴퓨터 프로그래밍이 변형시킨..
쓰레드 클래스의 정의를 위해서는 Thread 클래스를 상속해야만 한다. 때문에 쓰레드 클래스가 상속해야 할 또 다른 클래스가 존재한다면,이는 문제가 아닐 수 없다. 따라서 자바는 쓰레드를 생성하는 방법으로인터페이스의 구현을 통한 방법을 제시한다.인터페이스를 통한 다중상속의 효과에 해당하는 예로도 볼수 있다.복잡한 방법은 아니니 아래의 소스를 통해 보자. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748class Sum{ int num; public Sum() { num = 0; } public void addNum(int n) { num+=n; } public int getNum() { return..
쓰레드 관련 프로그래밍 자체는 그리 어렵지 않다.하지만 쓰레드에 대한 이해 없이는 프로그래밍이 불가능 하다.따라서 쓰레드에 대해 먼저 알아보자 프로그램의 실행 주체는 운영체제이다.프로그램의 실행이 요청되어지면아래와 같은 형태로 메모리 공간이 할당된다. 이 메모리를 기반으로 프로그램이 실행된다. 이렇듯 할당된 메모리 공간을 기반으로실행 중에 있는 프로그램을 가리켜 '프로세스' 라 한다.따라서 프로세스를 간단히 실행중인 프로그램 으로설명하기도 한다. 하지만 지금까지 우리가 보아왔던프로세스들은 프로그램의 흐름을 하나만 형성하고 있다.main 메소드의 호출을 통해서 하나의 흐름이 형성되며main메소드의 실행이 완료되면 흐름도 종료가 됬다. 그러나 하나의 프로세스 내에서 둘 이상의 프로그램 흐름을형성할 수도 있다..
저번 포스팅에 이어서 남은 부분 이어서 하겠습니다 먼저 IDao.xml에 남은 부분들을 채우겠습니다 먼저 글작성과 글삭제를 추가했습니다. 쿼리문 안에 #{param1}은 파라미터가 들어가는 곳 입니다이전에 우리는 dao 에서 insert 를 사용하기위해PreparedStatement 를 사용했습니다"insert into board (mId, mWriter, mContent) values (board_seq.nextval, ?, ?)";이렇게 ? 값을 준후밑에서 set을 해줬습니다. 하지만 xml 에서는 이렇게 하지못합니다때문에 위 이미지처럼 #{param1} 처럼 사용합니다이때 #와 $를 사용할수 있습니다 먼저 #을 붙이면 param1 값이 string 이나 int면컬럼에 맞춰서 변화를 해서 값을 지정해..