일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spring
- Java
- transformer
- 하이브리드앱
- javascript
- 테스트 커버리지
- Deep Learning
- react
- JPA
- log4j2
- 자료구조
- Machine Learning
- bean
- ES6
- data structure
- cache
- 스프링
- C++
- 구버전
- jQuery
- kotlin
- annotation
- 리액트
- Test Coverage
- 어노테이션
- 자바스크립트
- spring boot
- AWS
- 제이쿼리
- 스프링 부트
- Today
- Total
목록전체 글 (38)
박서희연구소
이 글은 스프링의 공식 문서를 읽고 정리 및 나의 생각대로 가공한 글이다. 스프링 IoC 컨테이너와 빈 소개 IoC는 의존성 주입(Dependency Injection, DI)이라고도 한다. 과정은 이렇다. 객체가 생성자 Arguments 또는 팩토리 메서드에 대한 Arguments에서 반환 객체 인스턴스에 설정된 속성을 통해서만 의존성을 정의 컨테이너는 빈을 생성할 때 의존성 주입 이 과정은 근본적으로 클래스의 직접 구성과 같은 매커니즘을 사용하여 의존성이 인스턴스화 또는 위치를 제어하게 되는 빈 자체의 역전(Inversion of Control)이다. IoC 컨테이너의 기본 패키지 구성으로는 org.springframework.beans와 org.springframework.context 가 있다. ..
[문제] 서버 개발 시, 로그 기록은 거의 필수적이라고 볼 수 있다. [목표] Spring Boot 에 Log4j2 를 연동하여 로그를 기록하는 방법을 알아본다. [해결] 환경 : Spring Boot 2.4.5, Maven, Kotlin 1.5.0 1. Dependency 추가 org.springframework.boot spring-boot-starter-log4j2 2. log4j2 설정 파일 추가 Spring Boot 는 클래스 경로에서 log4j2.xml 또는 log4j2.json 또는 log4j2.yaml 이라는 파일을 찾으면 자동으로 Log4j 를 구성한다. %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m..
[문제] Spring Boot 를 사용하던 중, MyBatis 가 필요한 상황이 생겼다. [목표] Spring Boot 에 MyBatis 를 연동하는 방법을 알아본다. [해결] 환경 : Spring Boot 2.4.5, Maven, Kotlin 1.5.0, MariaDB 2.7.1, MyBatis 2.1.4 DB 는 연동되어 있다고 가정하며, 사용할 테이블도 생성되어 있어야 한다. 1. Dependency 추가 org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.4 2. Mapper 추가 경로 : src/main/resources/mybatis/mapper/sample(resources 이하 부터는 재량대로 설정) 생성할 mapper interface 에 ..
[문제] 백엔드 개발 시, 로깅은 굉장히 중요하다. 다양한 Java Logging Framework 가 있고, 이들이 가지고 있는 특징과 역사가 다르다. [목표] Java Loggin Framework 중 log4j, logback, log4j2 의 특징과 역사를 알아보고 비교해본다. [해결] 생산적 문제를 분석해야 한다면, 좋은 로깅을 유지해야 하는 것이 얼마나 중요한지 알고 있을 것이다. 좋은 로깅은 다음 3가지의 것들이 요구된다. 로그 메시지는 애플리케이션 내부적으로 수행하는 작업을 이해하는데 필요한 정보를 제공해야 한다. 로그 메시지 작성은 애플리케이션의 성능에 영향을 주지 않도록 최대한 효율적이어야 한다. 다른 배포 환경과 상황에 맞게 상세한 로깅 정보를 조정할 수 있어야 한다. 각각의 사용 사..
개요 서비스가 점점 커질수록 서버 한 대로 처리하기가 힘들어지기 때문에, 자연스럽게 각 기능들을 여러 서버에서 처리하게 된다. 하지만 서버들끼리 주고 받는 메시지를 잃어버리지 않고 정확하게 처리하는 것은 매우 까다로운 기술이다. SQS 는 서버들끼리 주고 받는 메시지를 정확하게 처리해주는데, 이런 시스템을 개인이나 벤처기업 또는 스타트업과 같은 소규모 사업장에서 구현 및 구축하는 것은 상당한 노력과 시간, 비용이 소모된다. Amazon SQS 는 서버들끼리 사용할 수 있는 메시지 큐 를 제공하는 서비스이다. SQS 를 사용하면 고가용성 메시지 큐 시스템 구축에 드는 비용과 고가용성과 신뢰성을 유지하기 위해 지속적으로 소모되는 노력과 비용도 절감할 수 있다. 특히 시스템 장애로 인해 발생하는 금전적인 손실..
1. OOP(Object-Oriented Programming) 란? 객체 지향 프로그래밍은 이름에서 알 수 있듯 객체를 코드화해 프로그래밍 하는 것을 의미한다. OOP 는 절차 지향 프로그래밍 방식에 비해 사람의 사고 방식과 더 가까우며, 객체들의 유기적인 관계를 통해서 프로스세스가 진행됨 객체는 사용자들에게 보여지며 할당된 작업을 수행함 상속, 숨김, 다형성 등의 실제 엔티티를 구현하는 것을 목표로 함 데이터와 동작하는 함수들을 결합하여, 해당 함수를 제외한 코드의 다른 부분들이 데이터에 접근할 수 없도록 함 2. 특징 추상화(Abstraction) 데이터 추상화는 필수 세부 정보만 사용자에게 표시되는 것을 이야기 한다. 현실 세계의 예를 들면, 자동차는 개별적인 부품이 아닌 자동차로 간주된다. 한 ..
[문제] Oracle DB 에 MyBatis 를 이용해 foreach 문을 사용하던 중 문제가 발생했다. [목표] 위 문제를 해결할 방법을 알아본다. [해결] Controller) SampleDTO sampleDTO = new SampleDTO(); List list = new ArrayList(); Map map = new HashMap(); for (int count = 0; count < sampleNo.length; count++) { SampleDTO sampleInsertDTO = new SampleDTO(); sampleInsertDTO.setSampleNo(no); list.add(sampleInsertDTO); } map.put("list", list); sampleService.inse..
[문제] 개발하는 쇼핑몰 프로젝트의 Front 단 검색창 개발 중 Autocomplete(자동완성) 기능이 필요하다. [목표] jQuery 의 Autocomplete 기능을 적용해본다. Autocomplete 입력 필드에 타이핑 시 자동으로 남은 검색어를 완성해 표시해 주는 기능을 보통 자동완성 이라고 하는데, 이러한 기능을 jQuery UI 에서 이미 구현을 해놨는데, Autocomplete 라고 부른다. [해결] 환경 : JQuery 라이브러리 사용 방법 및 구현 방법 필요한 css 및 js 파일 html) 1. 배열 안에서 사용법 JavaScript) // 배열을 선언하여 사용하는 방식 $(function() { var searchSource = ['엽기떡볶이', '신전떡볶이', '걸작떡볶이', '..