본문 바로가기

전체 글117

결합도와 응집도 결합도와 응집도는 소프트웨어 설계에서 중요한 개념으로, 코드의 유지보수성과 재사용성을 높이는 데 중요한 역할을 합니다. 두 개념을 쉽게 설명하면 다음과 같습니다:결합도 (Coupling)결합도는 하나의 모듈(또는 클래스)이 다른 모듈과 얼마나 밀접하게 연결되어 있는지를 나타냅니다. 결합도가 높을수록 모듈 간의 의존성이 커지고, 결합도가 낮을수록 모듈 간의 의존성이 적습니다.높은 결합도: 한 모듈이 다른 모듈에 강하게 의존하고 있어서, 한 모듈에 변경이 발생하면 이를 사용하는 다른 모듈에도 변경이 필요하게 되는 상황입니다.예시: 클래스 A가 클래스 B의 내부 구현에 의존하여, B의 코드가 변경되면 A도 함께 변경되어야 합니다.단점: 유지보수가 어려워지고, 재사용성이 낮아집니다.낮은 결합도: 모듈 간의 의존.. 2024. 6. 25.
XSS 공격 방지용 XssFilter XssFilter filter = XssFilter.getInstance("lucy-xss-superset.xml");AdminSearchVo asvo = new AdminSearchVo(); if(StringUtils.isNotBlank(search_type)){ asvo.setSearch_type(filter.doFilter(search_type)); } if(StringUtils.isNotBlank(search_text)){ asvo.setSearch_text(search_text); } 프로젝트에서 쿼리파라미터로 받은 DB 검색 조건들 (ex: 제목,시작 날짜,종료날짜)을 AdminSearchVo의 필드에 넣고 이제 DB에 요청할때 검색 조건 넣은 AdminSearchVo를 같이 넘.. 2024. 6. 25.
Json 코드 해석 1. 객체를 JSON형식으로 변환 (직렬화)단계별 설명TokenBuffer buffer = new TokenBuffer(null);:TokenBuffer는 Jackson에서 제공하는 클래스입니다. JSON 내용을 메모리에 저장할 수 있는 버퍼 역할을 합니다. 이 버퍼는 일종의 중간 저장소로 사용됩니다.ObjectMapper objectMapper = new ObjectMapper();:Jackson의 핵심 클래스 중 하나인 ObjectMapper를 생성합니다. 이 객체는 Java 객체와 JSON 간의 변환 작업을 수행합니다.objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);:ObjectMapper의 직렬화 설정을 변경하여 n.. 2024. 6. 25.
JSP의 코드 해석 1.$(location).attr('href', url); 현재 페이지를 지정된 URL로 리디렉션 시키는 것입니다. 이로 인해 브라우저는 지정된 URL로 GET 요청을 하게 됩니다. 2.colNames: ['No.', '이메일','이름','권한','상태','등록일','비고'],colModel: [ {name: 'idx', index: 'idx', editable: true, width: 40, sorttype: "int", search: true, align: "center"}, { name: 'email', index: 'email', editable: true, sortable: true, align: "center", }, {.. 2024. 6. 24.
프로젝트 MyBatis 1.SELECT @RNUM := @RNUM +1@RNUM은 sql문에서 임시로 사용하는 변수이고 := 는 일반 프로그래밍 언어에서 = 대입 연산자를 mysql에서는 := 게 한다. 2. resultMap 설정에서 property와 column 속성, 태그, 태그property는 자바 객체의 필드이고, column은 SQL 쿼리 결과의 열 이름 또는 별칭입니다. MyBatis는 이 이름을 사용하여 SQL 쿼리 결과를 식별합니다. 예를들어 DB에 해당 테이블 컬럼 이름은 img_name_check이고 ImageVo객체 반환할때 어떤 필드의 이름이 img_name 일경우 셀렉문에 img_name_check는 실제 DB의 컬럼 이름이고, AS에 list_img_name_kor은 resultMap에 list_im.. 2024. 6. 3.
테스트용-데이터베이스를 임베디드 모드 H2 데이터베이스를 임베디드 모드 애플리케이션 클래스안에 빈으로 등록해준다(프로필이 테스트니 테스트에 있는 프로퍼티스에서 프로필 설정 해준다) @Bean @Profile("test") public DataSource dataSource() { log.info("메모리 데이터베이스 초기화"); DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("org.h2.Driver"); dataSource.setUrl("jdbc:h2:mem:db;DB_CLOSE_DELAY=-1"); dataSource.setUsername("sa"); dataSource.setPassword("");.. 2024. 5. 31.