반응형

MyBatis는 Java 애플리케이션을 위한 강력하고 유연한 SQL 매핑 프레임워크입니다. Spring은 엔터프라이즈급 애플리케이션을 구축하기 위한 널리 사용되는 Java 프레임워크입니다. 이 블로그 게시물에서는 Spring 프레임워크와 MyBatis를 통합하여 두 프레임워크의 기능을 모두 활용하는 방법을 보여줍니다.

1단계: 프로젝트 설정

시작하려면 필요한 종속성으로 프로젝트를 설정해야 합니다. Maven 또는 Gradle과 같은 빌드 도구를 사용하여 종속성을 관리할 수 있습니다. 이 예제에서는 Maven을 사용합니다.

pom.xml 파일에 다음 종속성을 추가합니다.

 

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.5</version>
</dependency>

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>2.0.3</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.1</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.3.1</version>
</dependency>

 

2단계: 마이바티스 설정

mybatis-config.xmlMyBatis를 구성하기 위한 구성 파일을 만듭니다 . 이 파일에서 JDBC 속성과 매퍼 위치를 지정합니다.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

 

3단계: MyBatis 매퍼 생성

매퍼 인터페이스 및 XML 파일을 생성하여 매퍼에 대한 SQL 문을 정의합니다.

public interface UserMapper {
  User selectUser(int id);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
반응형

'개발 > Java' 카테고리의 다른 글

리눅스 Java 설치 및 환경변수 설정  (0) 2017.12.11
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,
반응형
 
 

AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 플랫폼입니다. Lambda 함수에 대한 요청이 있을 때 AWS는 요청을 처리하기 위해 컨테이너라고 하는 함수의 새 인스턴스를 생성합니다. 새 컨테이너를 만드는 이 프로세스를 콜드 스타트라고 합니다.

콜드 스타트는 컨테이너를 만들고 필요한 리소스를 로드하는 데 추가 시간이 필요하기 때문에 새 컨테이너에 대한 첫 번째 요청에 대한 응답 시간이 느려질 수 있습니다. 이는 많은 종속성이 필요한 더 큰 함수나 함수에서 특히 두드러집니다.

반면에 웜 스타트는 매번 새 컨테이너를 생성하는 대신 컨테이너를 재사용하여 후속 요청을 처리할 때 발생합니다. 필요한 리소스가 이미 로드되어 있으므로 응답 시간이 빨라집니다.

콜드 스타트의 영향을 줄이기 위해 다음 전략을 사용할 수 있습니다.
1. 함수 및 해당 종속성의 크기를 줄입니다.
2. 함수에 대해 지정된 수의 컨테이너를 미리 준비하는 기능인 프로비저닝된 동시성 사용
3. 호출 간에 재사용할 수 있는 메모리에 데이터 저장


다음은 콜드 스타트 ​​시간을 줄이기 위해 데이터를 메모리에 저장하고 여러 호출에서 재사용하는 방법을 보여주는 Python의 예제 코드입니다.

import json

cached_data = {}

def handler(event, context):
    if not cached_data:
        # Fetch data from database or external API
        data = fetch_data()
        cached_data[‘data’] = data

    # Use cached data for subsequent requests
    response = {
        “statusCode”: 200,
        “body”: json.dumps(cached_data[‘data’])
    }

    return response

이 예제에서 함수가 처음 호출되면 외부 소스에서 데이터를 검색하고 이를 cached_data 사전에 저장하기 위해 fetch_data() 함수가 호출됩니다. 후속 호출에서는 캐시된 데이터가 사용되므로 응답 시간이 빨라집니다.

AWS Lambda에서 콜드 스타트와 웜 스타트의 개념을 이해하면 더 나은 성능을 위해 기능을 최적화하고 사용자에게 더 나은 경험을 제공할 수 있습니다.

반응형
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,
반응형

Elasticsearch는 인기 있는 오픈 소스 검색 및 분석 엔진입니다. 검색, 성능 분석, 로깅 등 다양한 목적으로 사용됩니다. 아래는 Elasticsearch와 REST API를 사용하여 기본 검색을 수행하는 방법의 예입니다.

curl -X GET "localhost:9200/{index_name}/_search?q={field_name}:{value}"

이 명령은 Elasticsearch에 GET 요청을 보냅니다. 지정된 색인 (index_name)에서 지정된 필드 (field_name)이 제공된 값 (value)와 일치하는 문서를 검색합니다.

결과는 일치하는 문서를 포함하는 JSON 개체가 됩니다. JSON 개체의 구조는 다음과 같습니다.

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1.0,
    "hits": [
      {
        "_index": "index_name",
        "_type": "type_name",
        "_id": "document_id",
        "_score": 1.0,
        "_source": {
          "field_name": "value",
          ...
        }
      }
    ]
  }
}

이는 기본적인 예일 뿐이며 Elasticsearch는 훨씬 더 고급 검색 및 작업이 가능합니다. Elasticsearch의 기능과 사용 방법에 대해 자세히 알아보려면 공식 Elasticsearch 설명서를 참조하는 것이 좋습니다.

반응형
블로그 이미지

민오라방구

개발 , 여행, 일상 아직 배울게 많은 개발자

,