https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 난이도: 레벨3- 분류 알고리즘: 이분탐색(binary search) - 솔루션class Solution { public long solution(int n, int[] times) { // 최소 시간은 1분 long min = 1; long max = 0; for (int time : times) { max = Math.max(max,..
day2 미션 제출입니다.1. 코드 리팩토링- 기존 코드public boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; } else { if (order.getTotalPrice() > 0) { if (!order.hasCustomerInfo()) { log.info("사용자 정보가 없습니다."); return false; } else { return true; } ..
- sudo apt update : 설치 가능한 패키지 리스트를 최신화- gradlew build -x test : 단위 테스트 건너뛰고 빌드- gradle : 로컬에 설치된 gradle 사용- gradlew: gradle wrapper에서 제공하는 gradle 실행 환경을 이용, 로컬에 gradle이 따로 설치되어 있지 않아도 된다.- nohup : 세션이 종료되어도 프로그램을 종료시키지 않고 계속 실행시킴. 데몬 형태로 실행- nohup & : 세션이 종료되어도 프로그램이 백그라운드에서 계속 실행 -> 사용자와 터미널로 상호작용 가능- ps : 프로세스 상태 표시- ps -ef : -e 옵션--> 활성 프로세스를 출력에 포함, -f 옵션--> PID 등의 모든 필드의 리스트를 출력- ps -ef | ..
1. JPA 엔티티 생명주기 JPA에서 엔티티는 EntityManager에 의해 영속성 컨텍스트(Persistence Context) 에서 관리되는데, 엔티티의 상태, 즉 생명주기는 크게 4가지 상태가 있다. - 비영속(new/transient), 영속(managed), 준영속(detached), 삭제(removed) EntityManager의 메소드를 통해서 각각의 상태가 될 수 있다. 1) 비영속 영속성 컨텍스트와 아무 관련이 없는 상태이다. 즉 순수한 객체 상태를 의미한다. 2) 영속- persist(entity)EntityManager를 사용해서 Persistence Context에 저장한 이후의 상태를 영속 상태라고 한다. EntityManager의 persist() 호출 이후 엔티티는 영속화..
* 요구 상황 가정 - 자동차의 종류 별로(기본, 세단, SUV, 트럭 등) 특정한 타이어, 브레이크, 엔진 오일 등의 부품들을 추가해서 완제품으로 구성하려고 한다.- 자동차에는 기본 성능 점수가 배정되어 있고, 각 부품을 추가할 때마다 각각의 부품에 해당하는 성능 점수를 자동차의 기본 성능 점수에 더해 산출한다. * 생각해볼 수 있는 방식1)- 클래스 개수가 넘 많아짐. 너무 추상화가 안되어 있음. 2)package nodecorator;public class Car { boolean fastBrake; boolean thickTire; boolean goodEngineOil; public boolean hasFastBrake() { ..
1. 데이터의 멱등성 HTTP 공부를 하면서 많이 들어봤지만 아직도 명확하게 개념이 서지 않았는데 이 기회에 정확히 알아보고자 한다. 한자로 '멱' 은 덮다, 천 같은 의미를 나타내고 '등'은 같다는 의미를 나타낸다. 일단 직관적으로 덮는데 같은? 뭐 그런 뜻이겠거니 하고 키워드를 자세히 알아봤다. RFC에서는 HTTP 메서드의 멱등성을 이렇게 설명한다. https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.2 RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content The Hypertext Transfer Protocol (HTTP) is a stateless \%applicatio..
1. this와 this() 키워드 JAVA에서의 this와 this() 키워드에 대해 알아봤다. - this란? : this란 객체 자신을 나타내는 참조 값을 의미한다. 클래스 내부에서 자기 자신(객체)을 가리키고 싶을 때 this 키워드를 이용한다. 주로 객체 내에서 자기 자신의 필드를 가리킬 때, 필드 값의 중복 방지를 위해 사용한다. 예를 들어 아래와 같은 코드가 있다고 했을 때 public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } 아래 메인 함수에서 new 연산자를 사용해 객체를 Heap 영역에 할당하고 주소..
스코프: 어떠한 빈 객체의 스코프는 해당 빈이 생성되고 유지되는 기간을 의미한다. 즉 빈이 존재할 수 있는 범위를 뜻함. 스프링이 제공 하는 주요 스코프 1. 싱글톤 2. 프로토타입 3. 웹 관련 스코프 -request, session, application 1. 싱글톤 - 기본 스코프로, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프. 2. 프로토타입 - 프로토타입 빈의 생성과 의존 관계 주입, 초기화까지 관여하고 더는 관리하지 않는다. - 또한 프로토타입 스코프를 스프링 컨테이너에 조회하면 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환한다. - 프로토타입 빈은 이를 조회한 클라이언트가 관리해야 한다. @PreDestroy 같은 종료 메소드 호출도 마찬가지. - 싱글톤과 ..