24.11.06(게시판 목록, HashMap)

jiiiiiiiArchive.·2024년 11월 6일

🤯지식주머니🤯

목록 보기
49/98
post-thumbnail

boardList

게시판 목록 페이지 생성


controller에 추가

  • BoardController.java

domain에 추가

  • BoardVo.java, Criteria.java, PageMaker.java, SearchCriteria.java eclipse에서 그대로 복사

persistance에 추가

  • BoardService.java
  • BoardServiceImpl.java

mybatis_config.xml에 추가

  • type-alias 지정
    • XML 설정 파일에서 클래스 이름을 간단한 별칭으로 정의
    • 코드 가독성 향상, 설정 파일 간결
    • 패키지 경로가 긴 경우 유용
    • XML을 통해 빈을 등록할 때 클래스의 풀 네임 대신 별칭을 사용하여 등록할 수 있도록 해줌

boardMapper.xml 추가

HashMap

  • Spring에서 HashMap은 일반적으로 데이터를 저장하거나 전달할 때 자주 사용되는 java.util.Map의 구현체 중 하나
  • HashMap을 활용하여 데이터를 key-value형태로 저장 및 쉽게 조회
    • REST API에서 JSON 응답 데이터로 사용하기에 적합
  • Spring에서는 주로 Controller, Service, Repository 레이어 간 데이터를 전달하거나 응답할 때 자주 사용
  • 개념 설명
    • java.util 패키지에 포함된 데이터 구조, key-value 형식으로 데이터를 저장하는 자료구조
    • 특징
      • key는 유일 : 각 key는 고유해야 하며, 같은 key가 두 번 이상 존재할 수 없음
      • value는 중복 가능 : 값(value)은 중복될 수 있으며, 같은 value를 여러 key에 할당할 수 있음
      • 빠른 조회 : 해시 테이블을 사용해 내부에서 저장하고, 조회 속도가 매우 빠름
      • 비동기적 : HashMap은 스레드에 안전하지 않아 멀티스레드 환경에서는 문제가 발생할 수 있음. 동기화가 필요한 경우 ConcurrentHashMap 사용 권장

Spring 프로젝트에서 HashMap 사용 예제

  • @RestController : Spring MVC에서 RESTful 웹 서비스를 쉽게 구현할 수 있는 어노테이션. 이 클래스의 모든 메서드는 JSON 형태로 데이터 반환
  • @GetMapping("/greet") : /greet URL로 들어오는 GET 요청을 greetUser 메서드에서 처리. 예를 들어 /greet?name=John 요청이 오면 greetUser()가 실행
  • Map<String, Object> response : HashMap으로 데이터를 저장하여 응답으로 사용. response 변수는 key-value 형태로 구성된 데이터를 담고 있음
    • message 키 : 사용자에게 보낼 인삿말
    • status 키 : 성공 여부를 담는 문자열
    • code 키 : HTTP 응답 코드와 유사한 형태로 응답 상태 전달
  • JSON 형식으로 자동 변환 : 반환된 HashMap 객체는 Spring이 JSON으로 변환해 응답으로 전송
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class ExampleController {

    @GetMapping("/greet")
    public Map<String, Object> greetUser(@RequestParam String name) {
        Map<String, Object> response = new HashMap<>();
        response.put("message", "Hello, " + name + "!");
        response.put("status", "success");
        response.put("code", 200);
        return response;
    }
}
  • 실행 예시
    • URL이 /greet?name=Alice일 경우, 아래와 같은 JSON 반환
{
    "message": "Hello, Alice!",
    "status": "success",
    "code": 200
}

HashMap의 Spring 사용 장점

  • 유연성 : 다양한 데이터를 저장하기에 유연하며 여러 타입의 데이터를 한 곳에 담을 수 있음
  • 가독성 : JSON 형식으로 변환될 때 key-value 형태의 직관적인 구조로 나타나므로 REST API 응답으로 적합
  • 간단함 : 간단한 데이터를 구성하거나 반환할 때 DTO(Data Transfer Object) 클래스 정의 없이도 빠르게 사용 가능

주의사항

  • 동기화 문제 : HashMap은 비동기적이므로 멀티스레드 환경에서는 ConcurrentHashMap을 사용하는 것이 안전
  • 타입 안정성 : 다양한 타입의 데이터를 담을 수 있지만 잘못된 타입을 넣거나 가져올 때 ClassCastException이 발생할 수 있음
profile
이것저것 다 적는 기록장📚

0개의 댓글