본문 바로가기
반응형

전체 글39

modal form 이용해서 데이터 update 하기 이 테이블에서 원하는 한 행만 선택해서 title, content를 update 하려고 했다. 업데이트를 위한 modal 창을 만들어주고 js부분에서 한행만 선택할 수 있도록 click 함수를 만들고, 수정 버튼을 클릭 시 기존 데이터가 나오며, ajax 처리로 데이터를 업데이트 해주도록 만들었다. 한 행을 선택하고 수정버튼을 클릭 시 모달 창이 위에서 아래로 내려오며 기존 데이터가 찍혀져있다. ID는 pre 기능을 사용했다. 2019. 11. 7.
Clean Code 짜기10 TDD(Test Driven Development 단위 테스트) 법칙 세가지 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목은 단위 테스트다 테스트 코드를 짤때는 가독성을 중요시 해야한다. 명료성, 단순성, 풍부한 표현력이 필요하다. Template method 패턴을 사용하면 중복을 제거할 수 있다. - 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 - 전체적으로는 동일하면서 부분적으.. 2019. 11. 4.
전자정부프레임워크 공통컴포넌트 새로운 패키지 추가 context, servlet bean설정 공통 컴포넌트를 받은 상태에서 패키지 경로를 새로 추가하면 경로를 읽어오지 못해서 context 파일들의 수정이 필요하다 일단 context-common.xml 파일 base-package에 새로 만든 패키지를 추가해주고 디비 쿼리문을 작성한 xml 파일 경로도 새로 팠기 때문에 context 파일을 수정해준다. context-mapper.xml 파일을 수정하는데 공통 컴포넌트를 받은 상태에서는 bean id가 egov.으로 시작을 해서 새로운 패키지 bean을 못찾아주니 새롭게 bean id를 egov. 를 제거한 상태로 만들어준다. classpath도 mapper/com 아래가 아니라 mapper/saltware 에 만들었기 때문에 추가해준다. 마지막으로 해당 경로에있는 egov-com-servlet.. 2019. 11. 1.
Clean Code 짜기9 외부코드 java.util.Map 사용시 다양한 인터페이스로 수많은 기능을 제공한다 Map은 객체 유형을 제한하지 않고, 사용자는 객체 유형도 추가가 가능하다 Sensor 객체를 담는 Map을 만들면 Map sensors = new HashMap(); Sensor 객체가 필요한 코드는 Sensor객체를 가져온다 Sensor s = (Sensor)sensors.get(sensorId); 위와 같은 코드가 한번이 아니라 여러 차례 나온다. 이 코드를 다음과 같이 제네릭을 사용하면 코드 가독성이 높아진다. Map sensors = new HashMap(); ... Sensor s = sensors.get(sensorId); 프로그램에서 Map 인스턴스를 여기저기로 넘기면 Map인터페이스가 변할 경우 수정할 코.. 2019. 10. 31.
Clean Code 짜기8 오류처리 오류 코드보다 예외를 사용하라 오류 발생시 예외를 던져 호출자 코드를 깔끔하게 만들자 논리와 오류 처리 코드를 섞지말자 Try-Catch-Finally 문부터 작성하라 try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. 예외 발생 코드가 try-catch-finally로 시작하면 try 블록에서 무슨일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워진다. public List retrieveSection(String sectionName) { try { FilelnputStream stream = new FilelnputStream(sectionName); stream.close(); } catch (FileNotFoundException e) {.. 2019. 10. 30.
전자정부프레임워크 새로운 경로로 패키지 추가하기 3.8 버전에서 common component를 다 받은 상태에서 새로운 패키지 경로를 만들어 추가하는 방식은 일단 만들어진 egov-com-servlet.xml에서 base-package 부분을 수정을 해준다. 이렇게 추가를 해줌으로써 kr.co.saltware 패키지 아래에있는 컨트롤러를 찾아갈 수 있게 된다. 컨트롤러를 담당하는 패키지는 이렇게 두었다. 실행을 하면 이렇게 컨트롤러맵핑이 성공된 걸 확인할 수 있다. 2019. 10. 28.
DataTables Ajax 배열 txt파일 불러오는 기본예제해보기 DataTables를 이용하여 테이블을 만들고 안에 ajax 파일 데이터를 넣어보기 이렇게 예제 코드를 이용해서 기본 테이블 상단과 하단이 될 테이블 기본 세팅을 하고 ajax 데이터를 불러오기위해 데이터 txt가 있는 파일의 경로를 적어줍니다. 제 경로는 src/webapp/ 아래 data폴더 아래 arrays.txt를 만들었습니다. arrays.txt 데이터 내용은 이런식으로 예제를 따라 구성했습니다. 결과는 제대로 된 데이터 확인을 위해 검색 data 폴더 아래 arrays.txt의 데이터가 잘 불러와지는 것을 확인했습니다. 참고 https://datatables.net/examples/ajax/simple.html 2019. 10. 25.
Clean Code 짜기7 디미터 법칙 - 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다 - 객체는 자료를 숨기고 함수를 공개한다 -> 객체는 조회 함수로 내부 구조를 공개하면 안 된다. Options opts = ctxt.getOptions(); File scratchDir = opts.getScratchDir(); final String outputDir = scratchDir.getAbsolutePath(); 위 코드 형태로 구현된 함수는 ctxt 객체가 Options을 포함하고, Options가 ScratchDir을 포함하고, ScratchDir이 AbsolutePath를 포함한다. 위 예제가 디미터 법칙을 위반하는지 여부는 ctxt, Options, ScratchDir이 객체인지 아니면 자료구조 인지에 달렸다. 객체.. 2019. 10. 25.
Clean Code 짜기6 형식 맞추기 코드 형식은 의사소통의 일환이다 오랜 시간이 지나 코드의 흔적을 찾기 어려울 정도로 코드가 바뀌어도 처음 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 적절한 행 길이 유지 개념은 빈 행으로 분리 코드에서 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. 생각 사이는 빈 행을 넣어 분리를 해주자. public class BoIdWidget extends ParentWidget { public static final String REGEXP = "'''.+?'''" ; private static final Pattern pattern = Pattern.compile("'''(.+?)'''", Pattern.MULTILINE + Pa.. 2019. 10. 24.
반응형