본문 바로가기

IT 공부/공부하며 드는 의문들4

Model Mapper Deep 매핑 방법?? MVC 패턴에서 컨트롤러와 뷰, 모델 사이에는 DTO라는 데이터 박스를 사용해 데이터를 한꺼번에 전달한다. 이는 컨트롤러와 서비스에서도 마찬가지인데, 이렇게 해야 웹 레이어와 서비스 내부(도메인과 레포지토리)를 개념적으로 분할할 수 있다. 그러나 서비스 내부에서는 DTO를 도메인의 VO와 같은 객체로 변환을 해야 하며, 이를 위해 Model Mapper와 같은 라이브러리가 사용된다. 그런데 Model Mapper는 객체 내부에 객체가 있는 경우엔 그것을 매핑하지 않는 것으로 보인다. 예를 들어, ReplyDTO 객체에 bno가 있다. ReplyDTO를 Reply 객체로 변환하고 싶은데, Reply에는 Board 객체가 있고, Board 객체에 bno 필드가 있다. Model Mapper는 ReplyDTO.. 2024. 1. 23.
배열에 대해.. 자료 구조와 알고리즘 구조가 같아야 할까? 배열(Array)은 대부분의 프로그래밍 언어가 지원하는 기본 데이터 타입으로, 같은 형식의 데이터를 인덱스를 통해 임의 접근(random access) 할 수 있는 자료구조다. 프로그래밍 언어를 배우는 초창기에 배열에 대해 학습하기 때문에 개발자에게 너무나 친숙한 자료구조이고, 조금만 훈련하면 누구나 쉽게 배열을 사용할 수 있다. 하지만 약간은 생각해볼 거리가 있다. 왜냐하면 자료구조와 알고리즘 구조가 같아야 한다는 코딩 원칙을 지켜야 한다면, 배열이 어떻게 사용될 것인지 고려해 볼 법한 요소가 있기 때문이다. for (int i = 0; i < arr.length; i++) { //... } 위 예제에서 arr을 도대체 어떻게 선언해야 하는 것이 좋을까? 너무나 습관적으로 배열을 선언할 수도 있고, 전.. 2023. 11. 27.
처음부터 문제를 잘못 접근했다면 (feat. 그래프 알고리즘) 1. 방의 개수 찾기 문제 원점 (0, 0)에서 시작해서 위와 같이 숫자가 적힌 방향으로 이동하며 선을 긋는다. 그림을 그릴 때, 사방이 막히면 방 하나로 센다. 이동하는 방향이 담긴 배열이 매개변수로 주어질 때, 방의 개수를 반환하도록 solution 함수를 작성하세요. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 먼저 해답에 대해서.. 이 문제의 해답에 대한 큰 아이디어는 다음과 같다. 각 점을 그래프의 노드라고 하고, 연결하는 선을 간선이라고 하면 이 문제의 자료구조는 그래프가 된다. 하나의 방은 (0,0)에서 시작해 이미 방문했던 노드로 다.. 2023. 11. 9.
왜 자바는 모든 것을 class로 처리하려는 것일까? (주절주절) 공부하면서 느끼는 제 개인적인 생각과 감정입니다... 자바는 클래스에서 시작해서 클래스로 끝난다. 처음부터 객체지향 설계 언어를 목표로 만들어진 언어라 그런가 싶다. 하지만 본질적으로 서로 다른 존재인 데이터 구조와 객체가 동등한 문법에 의해 만들어지는 것이 뭔가 불편하게 느껴진다. 데이터구조는 C언어의 struct와 비슷하다. 말 그대로 다양한 데이터타입을 묶어 개발자가 새롭게 정의한 데이터 타입이다. 대표적인 예로 직교좌표계의 점, 2차원의 벡터를 들 수 있다. 객체는 객체지향에서 말하는 바로 그 객체다. 객체를 정의하기가 쉽지 않지만, 객체지향에서 객체는 특정한 일에 특화된 작은 모듈이라 할 수 있다. 이때 그 구현은 외부로 드러나지 않아야 한다. 이것이 캡슐화(Capsulation) 개념이다. 만.. 2023. 10. 30.