객체 지향(Object-Oriented Programming) 설계와 특징에 대해 기록한 페이지입니다. SOLID 원칙 : 객체지행 프로그래밍의 5가지 설계 원칙1. 단일 책임 원칙(SRP, Single Responsibility Principle) ▶ 하나의 모듈은 하나의 책임을 가져야 한다는 원칙 2. 개방 폐쇄 원칙(OCP, Open Closed Principle) ▶ 확장은 열려있고, 수정은 닫혀있어야 한다는 원칙 3. 리스코프 치환 원칙(LSP, Liskov Substitution Principle) ▶ 하위 타입은 상위 타입을 대체할 수 있어야 한다는 원칙 4. 인터페이스 분리 원칙(ISP, Interface Segregation Principle) ▶ 용도에 맞는 인터페이스..
본인이 만들어둔 프로젝트를 Git 에 올리고 싶다면, 아래와 같은 순서로 입력하면 됩니다.git init --initial-branch=maingit remote add origin http://ip:port/경로/프로젝트.gitgit add .git commit -m "init"git push --set-upstream origin main 혹시 아래와 같은 오류가 발생한다면, Git 에선 관련기록이 없던 두 프로젝트를 병합할 때, 기본적으로 merge 를 거부하기 때문에 발생합니다.fatal: refusing to merge unrelated histories따라서 아래 명령어를 이용하여 병합 허용 설정을 해주어야 합니다.git pull origin main --allow-unrelated-his..
Tomcat 으로 웹 서버 구동 시, Controller 를 통하지 않고 resource 에 바로 접근 하는 방법이 있습니다. Tomcat 의 docBase 설정입니다. 설정 방법은 아래와 같습니다. 1. Tomcat 설치경로이동 -> server.xml -> Context 태그 추가 위 처럼 /image 로 URL 을 접근했다면 자동으로 /nas/image 경로의 파일 불러오는 설정입니다. 인터셉터 설정이 되어 있다면 해당 경로는 exclude 설정이 필요합니다. 2. 인터셉터 exclude 설정public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry reg..
Enum 은 'Enumeration' 의 약자로 열거, 목록 이라는 뜻을 가지고 있습니다. Enum 을 사용하면 코드가 단순해지고 인스턴스의 생성과 상속을 방지하여 상수값의 안전성이 보장이 됩니다. 아래는 인증방식을 Enum 으로 구현한 소스입니다.@RequiredArgsConstructorpublic enum LoginType { GOOGLE("googleLogin"), NAVER("naverLogin"), KAKAO("kakaoLogin"); public final String value; // 파라미터 주입 public static LoginType getValue(final String type){ if(StringUtils.isEmpty(type)){ return null..
SpringBoot 에서 application.yml 파일을 이용하여 멀티 프로필 설정 하는법을 작성하였습니다.server: port: 1234 servlet: encoding: charset: UTF-8mybatis: config-location: classpath:config/mybatis-config.xml mapper-locations: classpath:mapper/*.xml---spring: config: activate: on-profile: "local" datasource: driver-class-name: org.mariadb.jdbc.Driver url: jdbc:mariadb://localhost:3306/test?useUnicode..
. properties 파일로부터 값을 받아와 static 변수에 맵핑하는 방법을 작성하였습니다.1. 프로퍼티 작성우선 constants.properties 라는 파일을 classpath 아래에 생성합니다.resources/propreties/constants.propertiesbase.user.id:999901base.user.name:기본유저2. 소스작성Constants.java 파일을 생성합니다.import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.stereotype.Component;@Comp..
자바 스트림(Stream)이란, Java 8부터 추가된 기술로 람다(Lambda) 를 활용해 배열과 컬렉션을 함수형으로 간단하게 처리할 수 있는 기술입니다. 아래는 간단한 사용법에 대해 알아보겠습니다.1. foreach// 컬렉션 출력List list = new ArrayList();list.add("Element1"); list.add("Element2"); list.add("Element3");list.forEach(System.out::println)// 리스트 출력int result[] = {1,2,3};Arrays.stream(result).forEach(i -> System.out.print(i+""));2. sum// 각 자리수의 합int n = 123;int result = String.v..
Front End와 Back End으로 나눠 인프라를 구성할 때, CORS를 종종 만나게 됩니다. CORS는 Cross-Origin Resource Sharing Policy의 약자로 브라우저에서 다른 출처의 리소스를 공유하는 정책입니다. 서로 다른 도메인에서 API를 호출할 때 발생하는 에러로 이를 해결하기 위해 CORS를 설정해주어야 합니다.CORS 는 OPTIONS 요청을 통해서 서버가 적절한 Access-Control를 가졌는지 확인하고 적절하지 않다면 CORS 에러를 발생시킵니다. 해당 에러를 해결하는 방법에 대해 작성하였습니다.방법1. Filter 사용@Configuration@Order(Ordered.HIGHEST_PRECEDENCE)public class CorsFilter implemen..
Spring Boot에서 세션 관리를 효율적으로 구현하기 위해 Enum을 활용하는 방법을 살펴보겠습니다. 특히, Enum을 사용하여 세션의 key를 체계적으로 나열하고 관리하는 것이 핵심입니다. 이 접근 방식은 세션 관리의 일관성을 유지하고, 코드의 가독성과 유지보수성을 크게 향상시킵니다. 각 세션 키를 Enum에 정의함으로써, 세션 데이터를 저장하고 조회할 때 발생할 수 있는 실수를 줄일 수 있습니다. 이번 포스팅에서는 이 방법에 대해 간단하게 알아보겠습니다.1. SessionKeys 생성@RequiredArgsConstructorpublic enum SessionKeys { // key 를 나열 USER_VO("사용자 정보", UserVO.class), ROOM_VO("채팅방 정보", RoomV..
- Total
- Today
- Yesterday