spring

· spring
안녕하세요, 여러분! 이전 글에서는 SpringBoot에서 중요하게 다루는 IOC(Inversion of Control)에 대해 알아보았습니다. 이번에는 그 중에서도 특히 중요한 DI(Dependency Injection)에 대해 자세히 살펴보도록 하겠습니다. 1. DI(Dependency Injection)란? DI는 '의존성 주입'이라는 의미로, 한 클래스가 다른 클래스에 의존할 때, 이 의존성을 외부에서 주입하는 것을 말합니다. 예를 들어, 클래스 A가 클래스 B의 메서드를 사용해야 하는 경우, 클래스 A는 클래스 B에 의존하게 됩니다. 이 때, 클래스 B의 인스턴스를 클래스 A가 직접 생성하는 것이 아니라 외부에서 주입받아 사용하는 것이 DI의 개념입니다. 2. 왜 DI를 사용하는가? DI를 사용..
· spring
안녕하세요, 여러분! 오늘은 SpringBoot에서 사용하는 중요한 개념 중 하나인 IOC(Inversion of Control)에 대해 알아보도록 하겠습니다. IOC가 무엇인지, 왜 사용하는지, 그리고 어떻게 코드에서 적용되는지 쉽게 이해할 수 있도록 예시를 들어 설명하겠습니다. 1. IOC(Inversion of Control)란 무엇인가? IOC는 '제어의 역전'이라는 뜻입니다. 전통적인 프로그래밍에서 개발자는 직접적으로 객체를 생성하고, 그 생명주기를 관리하는 데에 직접적인 책임이 있습니다. 그러나 IOC가 적용된 프레임워크에서는 이러한 제어권이 프레임워크에 넘어가, 개발자는 프로그램의 흐름을 제어하는 대신 필요한 부분에만 집중할 수 있게 됩니다. 2. 왜 IOC를 사용하는가? IOC를 사용함으로..
· spring
회사에서도 springboot를 하고 있지만, 면접에서 springboot를 왜 사용하냐를 물어본다면 회사에서 사용해서요 라고 말하기에는 부적절한 답변이 될 거 같기도 하고, 이 토픽에 대해서 한 번 쯤은 고민할 필요가 있어보여서 글을 써 본다. 내가 생각하는 spring framework를 사용한 이유는 다음과 같다. 1. DI(의존성 주입) 기반으로 해서 객체지향 프로그래밍을 할 수 있다. 2. AOP를 통해서 트랜젝션 관리, 로깅, 보안에 대한 기능을 쉽게 구현이 가능하다. 3. 대형 프로젝트를 할 시에 유지보수 및 확장성이 높은 코드를 집어넣기 용이한 부분이 있다. 4. MVC 패턴으로 개발가능하다. 5. 다양한 라이브러리와 프레임워크를 연동해서 개발가능하다. (gradle, maven)
· spring
저번에 이어서 mockito에 대해 설명을 할까 한다. 저번 junit 테스트 했을 때는 일일히 게시판쓰기를 통해서 db에 데이터가 추가가 되고 그걸가지고 테스트를 하였는데, 매번 그렇게 하면 번거로운 부분도 있고, 상황에 따라서 데이터를 맞춰야하는 부분도 생긴다. mockito를 이용하면, 굳이 맞출려고 할 필요없이 어떤 예측한 값이 나온다고 가정을 해서 개발자가 정할 수 있게 되서, 테스트를 하는데 좀 더 편리하게 할 수 있는 장점을 가진다. 일단 mockito 정의를 보면? Mockito란 가짜(Mock) 객체를 지원하는 테스트 프레임워크 @ExtendWith(MockitoExtension.class) 어노테이션을 테스트 클래스에 붙여 사용할 수 있다. 유닛테스트를 할 때, 위의 Mockito를 통..
· spring
회사에서 설계/개발을 하고 테스트를 기존에 만들어진 웹 페이지로만 진행했기 떄문에, 군데군데 숨어있는 버그를 찾지 못하고 짜짤짜잘한 이슈들이 나오는 경우가 있었다. 최근에 유튜브에서 더 나은 개발자로 성장하기 위해서는 테스트코드를 잘 작성하라는 말이 나오면서 이번에 springboot에 존재하는 junit에 대해 다뤄볼까 한다. Junit이란? - Java에서 단위테스트를 지원해주는 프레임워크 Junit 문법 @BeforeClass : 테스트 시작시 1번만 호출 @Before : 테스트 시작전 호출 @After : 테스트 완료시 호출 @AfterClass : 모든 테스트 완료시 1번 호출 Junit 간단소스 import org.junit.After; import org.junit.Before; impor..
· spring
AOP이란? AOP(Aspect Orient Programming), 관점지향 프로그래밍이라고 하며, 공통된 영역와 비즈니스 로직을 구분하고 필요한 곳에 비즈니스 로직만 구현하겠끔 집중하게 도와준다. 장점 1. 코드 중복 줄어듬 2. 공통된 영역과 비즈니스 로직이 구분돼 개발이 좀더 용이해짐 용도 1. 로깅 2. DB 트랜젝션 3. vaildation ... 기본적인 문법 JoinPoint: 현재 실행되고 있는 패키지 영역 PointCut: 어떤 패키지 JoinPoint를 사용할 것인지를 결정 실행하고 있는 모듈을 사용자가 원하는 범위까지 조절할 수 있다. Advice: 각 JoinPoint에 삽입되어져 동작할 수 있는 코드 Before : 조인포인트 전에 실행 AfterReturning : 조인포인트에..
· spring
SpringBoot / Gradle 기반으로 설정되었고, 버젼은 다음과 같습니다. Springboot Version 5.3.5 gradle Version 6.8.3 build.gradle은 다음과 같이 포함해주시면 되겠습니다. dependencies { ~ compile("org.slf4j:slf4j-api:1.7.7") compile('ch.qos.logback:logback-classic:1.1.2') ~ } 그 다음에는 /src/main/resource 경로에 'logback-spring.xml' 파일을 만들고 다음과 같이 작성을 합니다. %d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n INFO test.txt test-%d{yyyy-MM-dd}.%i.txt 10..
· spring
회사서 자바소스를 k8s 파드에 올리게 되면서 디펜더시 관련해서 문제가 발생해 애를 먹었기에 공부가 필요하다고 생각이 들었다. 그래서 이번 기회에 정확하게 정의를 정확하게 인지하기 위해 블로그에 정리를 할까 한다. plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.test' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springfr..
· spring
스프링 시큐리티를 통해서 회원가입부터 시작해서 로그인 & 로그아웃을 진행할 것이다. 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 기본적으로 시큐리티를 사용하기 위해서는 'org.springframework.boot:spring-boot-starter-security' 를 추가시켜야 하며, 필자 같은 경우에는 시큐리티 관련해서 Thymeleaf를 쓸 것이기 때문에 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'를 추가하였다. 2. ..
· spring
AOP이란 Aspect oriented programming 으로써 관점 지향 프로그래밍이라고 한다. 정의를 굳이 말하자면 공통 영역을 핵심 부분에 적용하는 스프링 기능 중 하나라고 생각하면 된다. 자바의 특징이 객체 지향인데, 이러한 특징을 더욱 두드러지게 만들게 해준다. 이 정의를 처음 들었을 때 추상적으로 들려 좀 더 풀어서 설명할 까 한다. 그림은 간단한 웹 예제를 가지고 연습한 기준을 가지고 그림을 그린 것이다. AOP가 없다면 로깅, 보안, 트랜젝션 기능을 각 영역마다 추가를 시켜줘야 하는 불편함이 생긴다. 이 떄 aop를 이용하면 굳이 일일히 각 기능들을 추가시킬 필요가 없으며 공통 영역에 관한 클래스를 작성하고 적용시키기만 하면 되는 것이다. AOP를 본격적으로 앞서 AOP를 쓰는데 필요한..
개발만파볼까
'spring' 카테고리의 글 목록 (3 Page)