분류 전체보기 56

메타버스?

메타버스란 메타버스는 '가상', '초월' 등을 뜻하는 영어 단어 '메타(Meta)'와 우주를 뜻하는 '유니버스(Universe)'의 합성어로, 현실 세계와 같은 사회/경제/문화 활동이 이루어지는 3차원의 가상세계를 뜻한다. 메타버스는 가상현실(VR)보다 한 단계 더 진화한 개념으로, 아바타를 활용해 단지게임이나 가상현실을 즐기는데 그치지 않고 실제 현실과 같은 사회/문화적 활동을 할 수 있다. 메타버스 활용사례 '로블록스(Roblox)'라는 메타버스 게임 창의력을 바탕으로 코딩 개념을 배우고 돈도 벌 수 있는 교육 게임이다. 게임 속에서 거래되는 가상화폐는 실제 달러로 환전이 가능하다. 언택트 쇼핑 직접 매장을 방문하지 않아도 집에서 가상 체험을 통해 쇼핑을 하는 것이다. 롯데홈쇼핑의 '핑거 쇼핑'은 집..

IT 2023.04.15

[백준17144] - 미세먼지 안녕! - 자바(JAVA)

1. 문제 https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 2. 풀이 미세먼지가 확산, 공기청정기작동 2단계로 나누어서 코드를 작성했다. 미세먼지 확산 value라는 R*C 크기의 배열을 새로 만든다. (0,0)부터 (R-1)(C-1)까지 탐색하면서 먼지가 있으면 먼지가 확산되는 양(A/5)을 계산하여 value에 더한다. 마지막에 value값을 map에 더함 공기청정기 작동 공기청정기가 작동하는 방향대로 먼지를 ArrayList에 순서대로 ..

알고리즘 2023.04.15

디지털 트윈이란 무엇인가?

디지털 트윈과 시뮬레이션 비교 디지털 트윈과 시뮬레이션은 모두 가상 모델을 기반으로 한 시뮬레이션 방식이지만 몇 가지 주요한 차이점이 있습니다. 시뮬레이션은 일반적으로 설계에 사용되며, 경우에 따라 오프라인 최적화에도 사용됩니다. 설계자는 시뮬레이션에 변경 사항을 입력하여 what-if 시나리오를 관찰합니다. 반면 디지털 트윈은 실시간으로 상호 작용하고 업데이트할 수 있는 복잡한 가상 환경으로, 응용 규모가 더 큽니다. 자동차 시뮬레이션을 예로 들어 보겠습니다. 신규 운전자는 몰입형 교육 경험을 제공받고, 다양한 자동차 부품의 작동 원리를 배우고, 가상 주행을 통해 다양한 실제 시나리오를 경험해볼 수 있습니다. 하지만 시나리오는 실제 자동차와는 관련이 없습니다. 반면 차량의 디지털 트윈은 실제 차량에 연..

IT 2023.04.12

[백준15686] 치킨 배달 - 자바(JAVA)

1. 문제 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 2. 풀이 백트래킹과 DFS를 사용해서 문제를 풀었다. 백트래킹을 적용하지 않으면 시간 초과가 난다. 이것 때문에 살짝 헤맸다. DFS로 탐색하면서 open이라는 boolean 배열에 오픈할 치킨집을 true로 만들어 준다. cnt가 M과 같아지면 탐색을 종료하고 각 집에서 치킨거리를 모두 더해서 결과값을 만든다. 3. 코드 import java.util.Array..

알고리즘 2023.04.12

30일차

오늘은 Part 2. 게시판 서비스 강의의 `게시판 검색 구현-해시태그(단일)` 부분을 학습하였다. 해시태그를 위한 검색페이지를 따로 만들기로 정하였고 오늘은 해시태그 검색 페이지를 위한 기능을 구현하였다.해시태그 검색뷰에 모든 게시글에서 나오는 해시태그를 정리해서 보여주는 기능을 넣기 위해, 해시태그만 뽑아서 unique하게 보여주는 쿼리를 querydsl로 작성하였다. ArticleRepositoryCoustom 인터페이스 작성import java.util.List;public interface ArticleRepositoryCustom {    List findAllDistinctHashtags();} ArticleRepositoryCoustom 구현을 작성 Impl을 붙여야 querydsl이 인식..

프로젝트 2023.03.21

29일차

오늘은 Part 2. 게시판 서비스 강의의 `게시판 페이징 구현` 부분을 학습하였다. 페이지네이션 서비스 구현페이지네이션을 스프링 서비스 빈 형태로 설계하여 현재 페이지와 총 페이지 수를 넣어주면 페이지 바에 사용할 번호 리스트를 반환하게 설계하였다.import org.springframework.stereotype.Service;import java.util.List;import java.util.stream.IntStream;@Servicepublic class PaginationService {    private static final int BAR_LENGTH = 5;    public List getPaginationBarNumbers(int currentPageNumber, int total..

프로젝트 2023.03.20

28일차

오늘은 Part 2. 게시판 서비스 강의의 `게시판 페이지 기능 구현 2` 부분을 학습하였다. 게시판 기본 조회 화면을 위한 컨트롤러를 구현하고 데이터 전달을 완료하였다.게시판 페이지 기본 정렬 속성을 부여하였는데 1페이지당 10개, 시간 내림차순으로 해주었다.    @GetMapping    public String articles(            @RequestParam(required = false)SearchType searchType,            @RequestParam(required = false)String searchValue,            @PageableDefault(size=10,sort="createdAt",direction = Sort.Direction.DE..

프로젝트 2023.03.19

27일차

오늘은 Part 2. 게시판 서비스 강의의 `게시판 페이지 기능 구현 1`부분을 학습하였다. 저번 강의까지는 게시판, 게시글, 로그인 페이지 기능 테스트를 정의하면서 뷰의 기능을 정의하였지만 이번 강의에서부터 진짜 뷰의 기능 구현을 시작하기로 한다. ArticleRepository를 다음과 같이 작성해주었다.@RepositoryRestResourcepublic interface ArticleRepository extends        JpaRepository,        QuerydslPredicateExecutor, // 검색기능        QuerydslBinderCustomizer{    Page findByTitleContaining(String title, Pageable pageable)..

프로젝트 2023.03.18

26일차

오늘은 Part 2. 게시판 서비스 강의의 `로그인 페이지 기능 테스트 정의`부분을 학습하였다. 스프링 시큐리티에서 제공하는 모듈을 사용하기로 했기 때문에 로그인 페이지에 대해서 따로 작업해줄 내용은 별로 없었다. 오늘은 강의 외 시간에 업데이트된 내용을 리뷰하는 것으로 강의를 진행하셨다. 게시글과 게시글댓글 서비스 로직 테스트 코드를 업데이트하였는데 업데이트한 내용은 다음과 같다. ArticleServiceTest검색어 없이 게시글을 검색하면, 게시글 페이지를 반환한다.검색어와 함께 게시글을 검색하면, 게시글 페이지를 반환한다.게시글을 조회하면, 게시글을 반환한다.없는 게시글을 조회하면, 예외를 던진다.게시글 정보를 입력하면, 게시글을 생성한다.게시글의 수정 정보를 입력하면, 게시글을 수정한다.없는 게..

프로젝트 2023.03.17

25일차

오늘은 Part 2. 게시판 서비스 강의의 `게시글 페이지 기능 테스트 정의`부분을 학습하였다. 게시글과 댓글 서비스 로직의 테스트를 작성하면서 필요한 DTO를 함께 작성하였다. 도중에 DTO를 class가 아닌 record로 만드는 이유가 궁금했다. DTODTO는 우리말로 하면 데이터 전송 객체로, 프로세스 간에 데이터를 전달하는 객체이다. DTO 필요성Spring boot와 JPA를 사용하다 보면, Entity 클래스는 데이터베이스와 맞닿는 핵심 클래스이며, Entity 클래스를 기준으로 테이블이 생성되고 스키마가 변경된다는 것을 알 수 있다.다양한 계층에서 Entity를 직접적으로 사용하게 되면 원치 않게 Entity의 속성이 변경될 수도 있고, Entity의 모든 속성이 불필요하게 외부에 노출될 ..

프로젝트 2023.03.16