분류 전체보기 (94) 썸네일형 리스트형 백준 2417 - 정수 제곱근(Python3) 문제정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.입력첫째 줄에 정수 n이 주어진다. (0 ≤ n 출력첫째 줄에 q2 ≥ n인 가장 작은 음이 아닌 정수 q를 출력한다.예제 입력 1 복사122333444455555예제 출력 1 복사11060446 풀이n = int(input())low = 0high = 2 ** 32ans = -1while low 해당 문제는 이분 탐색을 사용하여 해결하였다. n의 범위가 0이상 2의 63승 이하이다. 제곱근을 구하므로 최솟값을 0 최댓값을 2의 32승으로 설정하여 둘의 중간값의 제곱을 n과 비교하여 반복하여 해결하였다. 출처: https://www.acmicpc.net/problem/2417 백준 14916 - 거스름돈(Python3) 문제춘향이는 편의점 카운터에서 일한다.손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오.예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다.입력첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다.출력거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다. 예제 입력 1 복사13예제 출력 1 복사5예제 입.. 영속성 컨텍스트 특징 1. 특징영속 상태의 객체는 Id(식별자) 값이 반드시 있음Id를 기준으로 1차 캐시에서 엔티티 값을 반환해 준다1차 캐시id가 2인 유저를 조회할 때 1차 캐시에서 존재하지 않을 경우 db에서 조회조회된 값을 1차 캐시에 저장다시 id가 2인 유저를 조회하면 1차 캐시에 있는 내용을 반환해줌이로써 db 접근을 최소화하고 효율적으로 접근할 수 있도록 도와줌쓰기 지연(id가 있을경우)트랜잭션 시작두 개의 멤버 객체를 persist두 개의 sql 문과 1차 캐시에 저장이 됨이후 커밋을 할 때 저장된 2개의 sql문이 한번에 db로 요청이 됨동일성 보장항상 같은 값을 반환해줌실제 메모리 주소도 같은 객체따라서 db 조회를 하지 않아도 되는 성능 향상의 이점이 있음변경 감지엔티티 매니저가 영속성 컨텍스트에 커밋.. JPA 기본 개념과 영속성 컨텍스트 1. JPA(Java Persistence API)Java 진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음 2. ORM(Object Relational Mapping)Class 객체와 RDB 테이블을 자동으로 매핑 해주고 영속화 함 3. JPA를 왜 사용할까RDB 테이블과 Java 객체는 같지 않다RDB 테이블Java 객체 컬럼을 통해 양방향 연결 가능객체간 양방향 연결 불가능고정된 형태의 값을 가지고 있음유연하게 다양한 데이터 구조 사용가능 4. JPA 장점추상화추상 계층을 제공해서 객체를 테이블 형태로 변환해 주기 때문에 SQL 문을 쓰지 않고도 개발이 가능생산성반복되는 CRUD 코드 줄어들어 생산성 증가유지보수데이터 베이스 시스템 변경에도 유연함, 데이터 접근 중심의 로직으로 ERD 의존도 .. Spring과 객체 지향 1. 스프링Java 기반의 애플리케이션 프레임워크 2. 스프링을 쓰는 가장 큰 이유좋은 객체 지향, 클린 아키텍처를 유지 할 수 있게 해주는 프레임워크 3. 스프링이 객체 지향과 클린 아키텍처를 지키는 방법싱글톤인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴이미 만들어졌던 객체를 효율적으로 계속해서 활용웹 요청 같이 여러 요청올 때에 효율적으로 대응 가능스프링 컨테이너싱글톤 원리가 적용된 스프링에서 제공하는 객체 저장소Bean 객체스프링 컨테이너에 저장되는 스프링에서 관리되는 객체스프링은 컴포넌트 스캔으로 bean 객체가 될 것들을 찾는다스프링 컨테이너가 알마은 빈 객체를 의존성에 맞게 주입해준다. => DI(Dependency Injection) 의존성 주입따라서 스프링은 스프링 컨테이너에서 관리.. 커뮤니티 피드(3) - 테스트 작성 1. UserInfoTest// org.communityfeed.user.domain// UserInfoTest.javaclass UserInfoTest { @Test void givenNameAndProfileImageUrl_whenCreated_thenThrowNothing() { // given String name = "test"; String profileImage = "profileImage"; // when // then assertDoesNotThrow(() -> new UserInfo(name, profileImage)); } @Test void givenBlankName.. 커뮤니티 피드(2) - Post 도메인 개발 * 밑줄: 여기서 처리할 부분 1. 게시글 작성:사용자가 텍스트를 입력하고사용자가 공개 대상 (예: 모두 공개, 팔로워 전용)을 선택합니다.사용자가 게시물을 제출합니다.단, 게시물의 글자수는 5글자 이상 500자 이하여야 합니다.// org.communityfeed.post.domain// Post.javapublic class Post { // 게시글 아이디 private final Long id; // 작성자 private final User author; // 게시글 내용 private final PostContent content; // 공개 범위 private PostStatus status; public Post(Long id, User .. 단위 테스트와 테스트 더블 1. 테스트를 작성하는 이유기능 변경이 있을 때에 영향도 파악 가능리팩토링 때에 기능의 안정성기능의 의도를 명확하게 파악이 가능2. 테스트를 작성하지 않는 이유의도를 전혀 모르겠는 복잡한 테스트시간이 지나면서 80%의 테스트가 통과가 안 되는 코드변경할 때에 오히려 짐이 되는 테스트3. 단위 테스트와 인수테스트인수 테스트: 사용자 관점에서 요구사항을 만족하는지 검증 => 최종단계의 검증단위 테스트: 테스트 가능한 가장 작은 단위를 검증하는 테스트 4. 인수 테스트의 한계프로젝트를 설계 하는 단계에서 빠르게 시작하기 어려움라이브러리들을 추가해야 함템플릿을 제대로 만들고 하지 않는다면 유지보수가 상대적으로 어려움5. 단위 테스트의 조건객체 지향으로 작게 나눈 순수한 자바 객체를 테스트 6. Given-Whe.. 이전 1 2 3 4 ··· 12 다음