Backend

Backend/Spring

템플릿 콜백 패턴

이전에 템플릿 메서드 패턴 포스팅에서 JdbcTemplate가 템플릿 메서드 패턴을 개선한 전략 패턴과 이를 이용한 스프링의 템플릿 콜백 패턴을 통하여 구현이 된다고 포스팅을 했었는데, 오늘은 그 템플릿 콜백 패턴이 어떻게 구성되는지 알아보는 시간입니다. JdbcTemplate 말고도, TransactionTemplate, RedisTemplate 등등 많은 부분에서 활용되기 때문에 해당 패턴을 이해하고 나면 이제 그림이 그려지실거라 생각합니다. 그럼 들어가기에 앞서서 먼저 콜백에 대해서 알 필요가 있습니다. 콜백이란? 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백..

Backend/Spring

스프링의 싱글톤 패턴으로 인한 동시성 문제와 그 해결

스프링의 동시성 문제와 해결 스프링은 기본적으로 빈을 등록할 때, 싱글톤 패턴으로 스프링 컨테이너에 하나의 객체만 가지고 있는 형태를 띄고 있다. 하나의 객체만을 가지고 있기 때문에, 톰캣같은 WAS는 멀티 쓰레드를 지원하기 때문에, 하나의 객체에 여러 클라이언트들이 접근을 하게 되었을 때, 데이터의 변경이 발생한다면 동시성 문제가 발생한다. 동시성 문제란 동시성 문제는 임계 영역에 각기 다른 쓰레드가 동일한 데이터에 접근하고 어떠한 쓰레드가 임계 영역의 데이터를 변경하려고 할 때 발생을 하게 되는데, 임계 영역이란 어떠한 자원을 공유할 수 있는 공간을 말한다. 따라서, 우리가 코드를 사용할 때, 임계영역이 발생할 수 있는 부분은 static 변수를 선언하거나 혹은 싱글톤 패턴으로 인해 새로운 객체의 생..

Backend

java Test 코드 작성 시 lombok을 사용할 수 없는 경우 해결법

때때로 스프링 프로젝트에서 테스트 패키지의 테스트 메소드에서 롬복을 사용하려고 하는 경우가 있다. 하지만 main 패키지에서는 잘 되는데 test 패키지에서는 안되는 경우가 종종 발생한다. build.gradle 에 다음과 같은 내용을 추가해주어야 한다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // 아래에 testCompil..

Backend/Spring

1. SPRING

SPRING 1. JAVA 기반의 웹 어플리케이션 개발에 사용되는 기술 2. 방대한 기능을 포함 - IOC/DI, AOP, PSA 3. 일반적으로 스프링은 Framework를 의미한다. SPRING Framework 1. 의존주입(Dependency Injection : DI) 지원 2. AOP(Aspect-Oriented Programming) 지원 3. MVC(Model, View, Controller) 웹 프레임워크 제공 4. JDBC, JPA 연동 기술 및 선언적 트랜잭션 처리 등의 DB연동 지원 5. 자바기반 어플리케이션 개발기능 지원(스케줄링, 메시지연동, E-mail 전송 등)

Backend/jsp

3. Servlet

Java Servlet - Java 언어를 이용하여 웹 서버에서 작동하는 프로그램 - 서버에서 실행하므로, 클라이언트의 부담이 적다 - 자바 클래스 파일로 작성되는데, html 문서 코드를 적기에 매우 불편하다. Servlet은 클래스이다. Servlet은 HttpServlet을 상속받아야 한다. Servlet 예시 out.println("Hello"); out.println("Hello Java");

Backend/jsp

2. Applet

Java Applet - Java 언어를 이용하여 웹 브라우저(=클라이언트)에서 작동하는 프로그램 - 윈도우 및 리눅스 어디에서나 브라우저가 자바를 구동할 수 있으면 실행 가능 - 여러 장점이 있으나, 클라이언트에서 실행하면 개인의 PC에서 실행되니 부담이 됨 cf) Java Applet 이 자바를 급 성장 시키게 되었다.

Backend/Spring

sts4 응용프로그램을 열 수 없습니다.

mac m1 에서 sts4 설치 후 어느 날 springtoolsuite4 응용 프로그램을 열 수 없다는 경고창이 나왔다. 검색해보니 맥 자체의 인증 문제라고 한다. codesign --force --deep --sign - /Applications/SpringToolSuite4.app 을 터미널 or iterm2에 입력하게 되면 인증이 되고 재 실행을 하니 문제가 해결되었다. https://happy-jjang-a.tistory.com/104ㅇㅇ MAC 응용프로그램을 열 수 있는 권한이 없습니다 MAC에서 STS 사용중에 갑자기 아래와 같은 문제가 발생하여 STS를 실행할 수 없을 때 조치 먼저 pkgutil로 인증 상태 확인 pkgutil --check-signature /Applications/Sp..

Bombo_
'Backend' 카테고리의 글 목록 (3 Page)