목록2024/10 (81)
코딩항해기
가변인자 Variable Arguments (...)가변인자는 메서드의 매개변수를 동적으로 처리 할 수 있도록 한다. 가변인자를 사용하면 메서드 호출 시 전달되는 인자의 개수를 동적으로 변경할 수 있다. JDK 1.5부터 사용 가능하다. printf()메서드가 가장 대표적인 예이다. 가변인자 문법타입... 변수명 가변인자는 매개변수 중에서 제일 마지막에 선언해야한다. 앞쪽에 선언할 경우 컴파일 에러가 발생한다. 활용 예시public class Main { public static void main(String[] args) { System.out.println(concatenate()); // 인자가 없음 System.out.println(concatenate("jo"..
model 파트 측에서 변경된 기능(CRUD)와 테이블에 대한 정보를 공유받고, 설계 상 더 이상 사용하지 않는 기능(작업 기간 문제로 중복 기능 축소화), 추가된 기능에 대한 내용을 공유했다. Model 파트 자료 (전체)이미지더보기엑셀 Controller 담당 파트 기능 상황 공유 및 요청 사항 전달
디자인 패턴 Design Pattern개발하면서 발생하는 반복적인 문제를 해결하기 위해 재사용이 가능한 설계 템플릿이다. 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 모범 사례집이라고 볼 수 있다. 디자인 패턴 장점재사용성이 높고, 일정한 구조로 정리되고 명확하게 되어 있어 가독성이 좋다. 또한 코드를 모듈화해 관리할 수 있어 유지보수성이 높다. 새로운 기능을 추가하거나 변경하는 것도 용이하며, 검증된 솔루션이므로 안정성이 높다.(재사용성, 가독성, 유지보수성, 확장성, 안정성과 신뢰성) 생성 패턴 Creational PatternSingleton(싱글톤 패턴) : 하나의 클래스 인스턴스를 전역에서 접근 가능하게 하면서 해당 인스턴스가 한 번만 생성되..
트랜잭션 Transaction 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 기능의 단위 혹은 일련의 연산을 칭한다. 관계형 데이터베이스에서 하나의 작업 또는 밀접하게 연관되어 있는 작업 수행을 위해 나눌 수 없는 최소 수행 단위를 트랜잭션이라고 한다. 중간에 서비스가 제대로 처리되지 않는다면 수행 이전으로 돌아가는 롤백이 있다. 트랜잭션 또한 종단 기능 사이에 횡단으로 사용되는 기능이므로 Advice를 활용한다. 의존 주입 (dependency)connection 객체를 활용하므로 DataSource를 제공하는 의존성과 AOP를 사용할 수 있도록 도와주는 의존성을 주입해야한다. org.springframework spring-aop org.springfra..
템플릿 패턴복잡한 로직, 반복되는 로직을 캡슐화하는 패턴으로 중복되는 코드를 줄이고 유지보수를 편리하게 할 수 있다. GoF 디자인패턴 : 템플릿 패턴알고리즘의 구조를 메서드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴이다. 알고리즘이 단계별로 나뉘거나, 같은 역할을 하는 메서드이지만 여러 곳에서 다른 형태로 사용이 필요한 경우 유용한 패턴이다. 대표적인 예시로 JDBCTemplate가 있으며, JDBCTemplate를 적용하는 방법에 대해 정리한다. JDBCTemplateJDBC에 템플릿 패턴을 적용한 것으로 기존 반복되던 코드가 줄어들어 가독성이 좋고, 유지보수에 용이하다.버전에 따라 의존 주입을 필요로 하기 때문에 의존 주입을 먼저 진행한다. org.spring..
View파트에서 페이지 자료를 받아 내용을 확인하고 Controller 설계 내용(담당 파트)과 합해 설계를 조율(10.17)하고, 팀 전체로 논의(10.17)하는 시간을 가진 뒤, 회의 내용을 바탕으로 설계를 수정해 View파트에 1차로 설계 내용 및 데이터 명을 전달했다. View 파트 자료 (전체)회의(10.17) 전의 자료로 후에 변경된 자료는 나중에 다시 공유 받아 설계를 맞출 예정이다. 회의 후 Controller 담당 파트 설계 수정 (View파트 전달 자료)회의 후 데이터 작업을 들어갈 예정이라고 전달 받아 완성된 설계는 아니지만 참고용으로 자료를 전달했으며, View파트에 있지만 설계에 빠진 기능을 추가해 보완하고, 작업시간 상 중복된 기능을 제거하는 단계를 거쳤다. 관리자 페이지에 들..
JAVA 8 버전 이후로는 time 패키지의 클래스를 사용해 날짜와 시간을 표현할 수 있다.java.time.LocalDate java.time.LocalTime java.time.LocalDateTime java.time.LocalDateLocalDate 클래스는 날짜를 표현하는 클래스이다. LocalDate.now();- 현재 날짜를 가져온다. LocalDate.now(ZoneId.of("Europe/Paris"));날짜를 Europe/Paris의 타임존을 적용해 가져온다. LocalDate 포맷 적용하기DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");now.format(formatter);- DateTimeFormat..
UUID Universally Unique Identifier128-bit의 고유 식별자이다. UUID는 중앙 시스템에 등록하고 발급하는 과정이 없어 상대적으로 더 빠르고 간단하게 만들 수 있다는 장점이 있다. 하지만 완전히 고유하지 않을 확률이 있지만, 1조 개의 UUID 중에 중복이 일어날 확률은 10억분의 1로 낮다. UUID의 구조 문자열로 이뤄져 있으며 총 길이는 36자리다. 5개의 버전이 있는데, 값을 생성하는 방식이 각각 다르므로 사용에 알맞은 버전을 사용하는 것이 좋다. 완전히 고유하고 랜덤한 값을 사용하고 싶다면 버전 4를 사용할 수 있다. UUID 사용UUID는 자바 외에도 대부분의 언어에서 사용할 수 있다. Java (randomUUID() => 버전4)import java.util..
1017 기준 담당 파트 : 게시글, 메인, 가게, 댓글, 상품(추후 인계), AOP, CookieUtil, FileUtil요청 별 페이지는 View파트에서 받아온 자료로 진행할 예정이며, 기능 별 필요한 데이터와 받아오는 데이터는 Model파트에서 받아온 자료로 교차 검증 진행 진행해 설계를 보완할 예정이다. (Condition 값 포함) 요청 url이 기존에는 제각기 다른 형태로 있어 파트 회의를 통해 패턴 설정 후 해당 패턴에 따라 설정했다. 게시글 메인 가게 댓글 상품 AOP Util (쿠키, 파일) 엑셀 파일
수업 시간 진행한 실습 기록을 남기려다가 설계 수정하느라 업로드를 깜빡 잊었다.. ㅜㅠ AOP를 활용해 요청 사항을 만족한 로그를 찍기 1. 서비스 기능에 반환이 있는 경우, 그 반환값이 배열인 경우에는 아무일이 발생하지 않지만, 그 반환값이 DTO일 때 어떤 DTO인지 로그로 안내 2. CUD에 대해서 전에 DB 접근 발생! 후에 DB 변경 완료! 로그로 안내 실습 풀이에서는 CRUD에 접근한 후 JoinPoint로 메서드 명을 받아와 검사하는 방식을 사용했는데, CUD에 대해서라는 말이 있어서 반환 타입이 boolean인 메서드만 접근하는 방식으로 풀었다. Advice조건에 맞춰 해당 로그를 실행한다.@Service //bean 등록 @Aspect@Slf4jpublic class LogAdvice ..