본문 바로가기

전체 글1179

BDD 패턴의 테스트 코드 작성 방식(describe-context-it, given-when-then) BDD 패턴사람은 "상태 - 행위 -결과" 기반으로 행동할 수 있다고 한다. 아래 그림처럼 고양이도 걷는 행위를 할 때에는 "상태 - 행위 - 결과"으로 표현할 수 있습니다. 사용자 또는 비즈니스 요구사항에 대한 시나리오를 행동 기반으로 자연어로 표현하는 개발과 테스트를 진행하는 방법입니다. 구체적인 시나리오에 따른 행동을 기술하고 이를 기반으로 테스트를 작성하여 사용자 행동 및 비즈니스 가치에 초점을 두고 테스트를 진행합니다. 예를 들어, 일반적인 method를 작성할 때 파라미터, 비즈니스 로직 등이 포함되어 있습니다. 해당 method가 동작하는 것이 실제 사용자 행동처럼 묘사해서 테스트 코드를 작성합니다. //DB 대신 Map으로 계좌의 금액을 관리하는 환경이라고 가정한다.// 입금하였을 때 계.. 2025. 6. 23.
[백준, Java] 21758번, 꿀 따기(누적합, 그리디) 문제 링크 21758번: 꿀 따기아래와 같이 좌우로 N개의 장소가 있다. 장소들 중 서로 다른 두 곳을 골라서 벌을 한 마리씩 둔다. 또, 다른 한 장소를 골라서 벌통을 둔다. 아래 그림에서 연한 회색의 장소는 벌이 있는 장소이고 진한 회색의 장소는 벌통이 있는 장소이다.www.acmicpc.net주의사항JAVA를 사용하여 프로그램을 사용하였습니다.백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.public class Main{ public static void main(String[] args){ }}문제 설명접근 방법이 문제에 핵심 1. 2마리의 꿀벌이 존재하며 꿀벌이 위치한 칸의 꿀은 따지 못한다.2. 꿀벌은 벌통 방향으로 이동하며 지나간 칸에 숫자만큼 꿀.. 2025. 6. 17.
나만의 클린 코드 이야기 - 편리함도 좋지만, 위험성도 알고 써보자! Lombok 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.Lombok??어노테이션(@Getter, @Setter 등)을 통해 보일러 플레이트 코드가 발생하지 않도록 하여 개발자에게 편리함을 제공하고 있습니다....@Getter@Setterpublic class Person{ ...}[동작 원리] 1. 실행된 Java Source 코드를 컴파일러에서 파싱을 진행하여 AST(Abstract Syntax Tree)으로 변환합니다. 2. 생성된 AST을 Lombok Annotation Processor가 AST을 동적으로 수정을 진행합니다. 3. Lombok 의해 수정된 AST을 기반으로 분석하여 Byte Code을 생성하여 JV.. 2025. 6. 9.
[백준, Java] 14567번, 선수과목(그래프 탐색, 위상 정렬) 문제 링크 14567번: 선수과목올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다.www.acmicpc.net주의사항JAVA를 사용하여 프로그램을 사용하였습니다.백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.public class Main{ public static void main(String[] args){ }}문제 설명접근 방법이 문제에 핵심 1. 1~N개의 강의가 있으며, 선수 조건(B강의를 들으려면.. 2025. 5. 31.
[백준, Java] 3079번, 입국심사(이분탐색) 문제 링크 3079번: 입국심사상근이와 친구들은 오스트레일리아로 여행을 떠났다. 상근이와 친구들은 총 M명이고, 지금 공항에서 한 줄로 서서 입국심사를 기다리고 있다. 입국심사대는 총 N개가 있다. 각 입국심사관이 심사를 하는데 걸리는 시간은 사람마다 모두 다르다. k번 심사대에 앉아있는 심사관이 한 명을 심사를 하는데 드는 시간은 Tk이다.www.acmicpc.net주의사항JAVA를 사용하여 프로그램을 사용하였습니다.백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.public class Main{ public static void main(String[] args){ }}문제 설명접근 방법이 문제에 핵심 1. N개의 심사대와 M명의 친구들이 존재한다.2. 각 .. 2025. 5. 23.
나만의 클린 코드 이야기 - 비즈니스에 맞는 Collection을 만들자! 일급 컬렉션! 해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.상황Domain 객체의 목록을 이용하여 비즈니스 로직을 구현할 때 마주치게 됩니다. [아래와 같이 User라는 도메인을 이용해서 개발할 때 있을 때 마주칠 수 있는 코드 예시]User.classpublic class User { private final String email; private final String name; private final int age; private final String phone; // true : 여성, false : 남성 private final boolean gender ; public User(String email.. 2025. 5. 19.