로그인, 회원가입 등 화면에서 우리는 여러가지 값을 입력 할때가 많다. 로그인을할때 ID에 우린 영어를 입력하고주소, 이름 등에는 한글을 입력한다. 입력 폼을 우린 jsp에서 input 태그를 사용하는데input 태그를 사용해 기본적인 로그인, 회원가입 등에서쓰이는 입력 폼을 만든다. 회원가입을 할때 이름, 주소에는 보통 한글을 입력한다.근데 간혹 영어부터 입력되는 사이트들이 있다. 또한 로그인을 할때도 ID란에 우린 영어를 입력해야 하는데한글이 써지는것을 보고 꼭 한/영 버튼을 누른다.별거 아니지만 굉장히 귀찮다. 그래서 이를 방지하기 위해 input 태그에서 ime-mode라는 style 속성을사용할 수 있다. ime-mode를 통해 한글 또는 영어를 기본값으로 넣어입력되는 언어를 선택할 수있다. 사..
예외 처리 - 자바 개발자가 가장 신경 쓰기 귀찮아하는 것정상적인 결과와 흐름을 보여주는 것도 힘든데예외상황까지 처리해야 한다. 그래서 예외와 관련된 코드는 자주 엉망이 되거나무성의하게 만들어지기 쉽다. 아래는 자바 기초를 배울때 만들어내는 JDBC 코드에서흔히 볼 수 있다. 예외를 잡고 아무것도 하지 않는다. 예외 발생을 무시해버리고 정상적인상황인 것처럼 다음 라인으로 넘어가겠다는의도가 있는게 아니라면 절대 만들어서는안되는 코드이다. 예외가 발생하면 catch로 잡아내는 것까지는 좋은데아무것도 하지않고 넘어가는것은 정말 위험한 일이다.왜냐하면 프로그램 실행 중에 어디선가오류가 있어서 예외가 발생했는데 그것을 무시하고 계속진행해버리기 때문이다. 최종적으로 오작동을 하거나 시스템 오류가 나서 운영자가알아차..
스프링은 IoC/DI 를 이용해 객체지향 프로그래밍 언어의 근본과 가치를 개발자가 손쉽게 적용하고사용할 수 있게 도와주는 기술이다.동시에 스프링은 복잡한 엔터프라이즈 애플리케이션을효과적으로 개발하기 위한 기술이다. 애플리케이션은 계속 변하고 복잡해져간다.그 변화에 대응할 수 있는 것이기술, 테스트이다. 스프링으로 개발을 하면서 테스트를 만들지 않는다면이는 스프링이 지닌 가치의 절반을 포기한 셈이다. 테스트는 스프링을 학습하는데 있어 가장 효과적인 방법의 하나이다. 보통의 웹 프로그램에서 사용하는 DAO를테스트하는 방법은 DAO를 만들고서비스 계층, MVC 프레젠테이션 계층 까지포함한 모든 입출력 기능을 만든후,웹 화면을 띄어 폼을 열고 값을 입력하고버튼클릭하여 값을 컨트롤러로 보내고 서비스 걸쳐서 DAO..
인터넷을 돌아다니다 좋은 글을 발견해내 블로그로 퍼왔다. 개발Tip 과는 거리가 멀고인생과 관련이 있지만 내 블로그에 딱히 글을 쓸만한 카테고리가 없기에 개발Tip에 쓴다.어떻게 생각해보면 개발과도 관련이 있다고 생각된다.(인생 -> 내인생 -> 개발자 -> 개발) 원문 : (https://www.buzzfeed.com/mikespohr/37-things-youll-regret-when-youre-old)글 쓴이는 BuzzFeed 의 부 편집장이자 블로거이고 세 아이의 아빠이다. =============================== 1.기회가 왔을 때 여행하지 않았던 것당신이 나이들수록 여행하는 것은 점점 더 어려워진다.특히 가족이 있다면 적어도 세 사람의 비용을 고려해야 한다. 2.외국어를 배우지 ..
제어의 역전 - 프로그램의 제어 흐름 구조가 뒤바뀌는 것 일반적 프로그램의 흐름은 main() 메소드와 같이프로그램이 시작될때 다음에 사용할 오브젝트를 결정하고결정한 오브젝트를 생성하고 생성된 오브젝트의메소드를 호출하고 그 오브젝트 메소드 안에서 다음에 사용할것을 결정하고 호출하는 식의 작업이 반복됨 제어의 역전은 오브젝트가 자신이 사용할 오브젝트를스스로 선택하지 않음.생성하지도 않음. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 떄문이다. 제어의 역전 개념은 이미 많이 적용되어있다.대표적으로 서블릿 서블릿은 개발을해서 서버에 배포할 수는 있지만그 실행을 개발자가 직접 제어할 수 있는 방법이 없다대신 서블릿에 제어 권한을 가진 컨테이너가 적절시점에 서블릿 클래스의 오브젝트를 만들고그 안의 메소드..
자바스크립트를 공부했을때Date를 사용해 오늘 날짜를 구했을때가 있었다.new Date()를 사용했는데오늘 회사에서 새로운 사실을 알았다. Date 에서 난 연도를 가져올때 당연히 getYear()로값을 가져올 줄 알았는데getYear() 이 아닌 getFullYear()로연도를 가져온다는 것이였다. 지금까지 공부해오면서 사실 new Date() 를 사용해본적이자바스크립트를 공부할 때 처음에 한 번 써본게 다 였던것같다. 왜냐하면 현재 연도나 오늘 날짜를 가져올 일 이 없었기 때문이다.게시판같은걸 만들때 오늘 날짜와 현재 시각을 insert할때는그냥 DB에서 바로바로 넣을 수 있었기 때문에new Date() 같은게 필요없었다. 근데 오늘 오랜만에 자바스크립트로오늘날짜를 구해오는 부분을 봤다.오늘 날짜가 ..
객체지향 설계 원칙(SOLID)객체지향 기술은 어느 날 한 번에 만들어진 것이 아니다. 오랜시간에 걸쳐 점진적으로 발전 해온 기술이다.때문에 객체지향 기술을 받아들이고 적용하는 관점과기법에 차이가 조금씩 있다. 객체지향 설계 원칙은 객체지향의 특징을잘 살릴 수 있는 설계의 특징을 말한다.예외는 있겠지만 대부분의 상황에 잘 들어맞는가이드라인과 같은 것이다.디자인 패턴은 특별한 상황에서 발생하는 문제에 대한 좀 더 구체적인솔루션이라고 한다면 객체지향 설계 원칙은 좀 더 일반적인상황에서 적용 가능한 설계 기준이라고 볼 수 있다. 높은 응집도와 낮은 결합도응집도가 높다는 것은 하나의 모듈, 클래스가 하나의책임 또는 관심사에만 집중되어 있다는 것. 높은 응집도응집도가 높다는 것은 변화가 일어날 때 해당 모듈에서변..
추상화란 어떤 것들의 공통적인 성격을 뽑아내어 이를 따로 분리해내는 작업이다.자바가 추상화를 위해 제공하는 가장유용한 도구는 인터페이스이다. 인터페이스는 자신을 구현한 클래스에 대한구체적인 정보는 모두 감춰버린다. 인터페이스는 어떤 일을 하겠다는 기능만 정의해놓은 것이다.이말은 인터페이스는 "어떤 기능을 하겠다." 하는 구현체가 없다구현은 인터페이스를 구현할 클래스들 안에서 해야한다. 아래처럼 인터페이스를 정의하자.DB커넥션을 가져오는 메소드 이름을 makeConnection()이라고 정했다. 위 인터페이스를 사용하는UserDao 는 ConnectionMaker 인터페이스 타입의오브젝트라면 어떤 클래스로 만들어졌든지makeConnection() 메소드를 호출하면 Connection타입의오브젝트를 만들어서..