[Spring] Bean 등록하는 다양한 방법
·
STUDY/SpringLegacy
Spring Bean 등록 방법Spring Bean을 설정하는 방법에는 크게 XML 설정을 통한 방법과 Java 설정을 통한 방법이 있습니다. 그리고 각 설정 방법마다 Bean을 직접 등록하는 방법과 컴포넌트 스캔을 활용하여 등록하는 방법이 있습니다. 각 방법에 따라 다음 정보를 Bean으로 등록하는 예시를 통해 설정 방법을 알아보겠습니다. MyService 객체가 MyRepository 의존성을 갖고 있다.다음과 같이 MyService와 MyRepository 클래스를 정의합니다.public class MyService { private final MyRepository myRepository; public MyService(MyRepository myRepository) { this.myRe..
[Spring] @Resource, @Autowired, @Inject 차이
·
STUDY/SpringLegacy
@Resource, @Autowired, @Inject는 모두 의존성 주입(DI)을 위한 어노테이션이지만, 작동 방식, 지원 프레임워크, 객체 검색 방식 등에서 차이점을 가지고 있습니다.  구분@Resource@Autowired@Inject지원 프레임워크JavaSpringJava, Spring객체 검색 방식이름 기반 (기본), 타입 기반 (선택)타입 기반타입 기반필드 설정setter, 필드setter, 생성자, 필드setter, 생성자, 필드널 허용허용 (기본), @Required 사용 시 필수불허용불허용스프링과의 연동별도 설정 필요기본 제공별도 설정 필요 (선택)사용 시점초기화 후객체 생성 시점초기화 후 또는 객체 생성 시점 @ResourceJava에서 제공하는 어노테이션으로, 스프링 프레임워크에 종속..
[Spring] [JS] SSE (Server-Sent Events) 사용하기
·
STUDY/SpringLegacy
SSE (Server-Sent Events)SSE는 서버와 클라이언트 간의 단방향 푸시 방식의 실시간 통신 방식으로, 클라이언트가 서버에 지속적으로 연결을 유지하면서 서버로부터 데이터를 수신할 수 있습니다. 이는 챗방, 주식 시세, 경기 결과 등 실시간으로 변화하는 데이터를 제공하는 데 적합합니다. SSE는 다음과 같은 장점을 제공합니다.실시간 업데이트 제공: 클라이언트가 페이지를 새로고침하지 않고도 서버로부터 최신 데이터를 받아볼 수 있습니다.낮은 대역폭 사용: SSE는 HTTP 요청/응답 방식을 사용하기 때문에 WebSockets보다 대역폭 사용량이 적습니다.쉽게 구현 가능: Spring SSE는 Spring 프레임워크에서 제공하는 SseEmitter 클래스를 사용하여 쉽게 구현할 수 있습니다.SSE..
[JAVA] 스트림 총정리
·
STUDY/JAVA
내부반복과 외부반복외부 반복• 컬렉션이나 배열의 원소를 다룰 때, 원소의 반복 처리를 프로그램에서 명시적으로 제어하는 방식 원소를 프로그램에서 선언된 변수로 복사한 후, 작업을 처리함 for, 향상된 for, while, do-while, Iterator 등을 이용한 반복 작업이 외부 반복에 해당됨 List names = Arrays.asList("Kim", "Lee", "Park");for (String name : names) { System.out.println(name);}Iterator iterator = names.listIterator();while (iterator.hasNext()){ System.out.println(iterator.next());} 내부 반복과 forEach 메소드()..
[Spring] Log4j2 설명
·
STUDY/SpringLegacy
자바를 하게되면 콘솔에 데이터를 출력하기 위해 System.out.println()을 사용합니다. 하지만 스프링에서는 이를 사용할 필요없이 log4j라는 라이브러리가 로그 관련한 기능들을 관리해줍니다. 이 글은 STS(Spring toos Suite)로 생성한 스프링 프로젝트 기준으로 작성되었습니다. STS를 이용하여 프로젝트를 생성하는 방법은 가장 하단에 관련 글을 포스트합니다. 이 글은 자바웹을 다루는 기술 책을 참고하여 작성하였습니다. log4j 스프링으로 개발할때 보면 콘솔에 위와 같은 엄청 많은 로그들이 출력되는데 이 모든게 log4j 덕분입니다. 개발할 당시에 사용했던 로그 메시지들은 실제로 서비스할 때 전혀 필요없게 됩니다. 그럴 경우 일일이 찾아서 해당 로그들을 삭제해주어야 하는데 이는 번..
[Spring] Log4j2 사용해 상세한 SQL 쿼리 로그 출력 설정
·
STUDY/SpringLegacy
STS Console 창에서 SQL 쿼리 Log를 자세히 출력을 위한 설정  log4j.xml 에서 Root Looger 의 value를 debug로 수정할 경우 실행된 sql문을 확인 할수있으나execute query : SELECT * FROM TABLE WHERE ID = ?와 같이 실행된 쿼리문에 파라미터를 함께 표현하지 않는 점과,미리 결과내용을 보지 못하는 점에서 불편함을 느낄수있다.이때 아래와 같이 설정할 경우 자세한 sql 로그를 설정하여 출력할수있어 편리해진다.  1.pom.xml 의존성추가 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 2. root-context.xml (또는 dataSource-context...
[JS] encodeURIComponent
·
STUDY/JavaScript
encodeURIComponent요약문자를 유니코드 값으로 인코딩합니다. (영문,숫자 제외) URI로 데이터를 전달하기 위해서 문자열을 인코딩문법encodeURIComponent(string)인자인자명데이터형필수/옵션설명stringstring필수인코딩할 문자열 반환값string, 인코딩된 문자열을 반환설명encodeURIComponentURI(Uniform Resource Identifier) ​​구성 요소를 인코딩하기 위해 JavaScript에서 사용되는 함수입니다. 이는 URL 내에 특수 문자가 포함된 데이터를 포함하려는 경우 특히 유용합니다.작동 방식은 다음과 같습니다.인코딩 : URI 구성 요소의 특정 문자를 해당 이스케이프 시퀀스로 바꿉니다. 이러한 이스케이프 시퀀스는 퍼센트 기호(%)와 문자의..
[MyBatis] <trim> 사용법
·
STUDY/DB SQL
MyBatis의 trim 태그는 동적 SQL 문에서 불필요한 공백과 문자를 제거하고 조건에 따라 SQL 문을 조립하는 데 사용됩니다. 태그를 보완하는 역할을 해줍니다.은 4가지의 속성을 가지고 있습니다. prefix 속성 태그 내부 실행될 쿼리문 가장 앞에 붙여준다. update board username=#{username}, password=#{password}-- 최종 실행 쿼리문update boardsetusername=#{username},password=#{password} prefixOverrids 속성태그 내부 실행될 쿼리문 가장 앞의 단어가 속성값에 설정해둔 문자와 동일할 경우 문자를 지웁니다.select * from tbl_board where OR title = "Bo..