[백준] 14620번 꽃길 _ Python
·
Algorithms/Brute Fource
[초기 접근 방법] - 처음에 '꽃들의 거리 > 2'를 생각하며 기하적으로 접근했다. 삼각형의 모든 변의 길이가 2 이상.. (오히려 더 복잡함) [생각] 1. 오랜만에 풀어보는 완전 탐색 문제. 생각보다 오래 걸렸다.. 2. 첫 코드에서 통과했지만 난잡하게 작성했던 코드를, 아래 블로그를 보면서 리팩토링을 했다. [코드] # 풀이 시간 : 1시간 30분 # 시간복잡도 : O(n^3) # 공간복잡도 : O(n^2) # 참고 : https://amor-fati.tistory.com/120 import sys input = sys.stdin.readline # 인근 5평 대여 비용 구하기 def calFive(): for i in range(1, N - 1): for j in range(1, N - 1): ..
블로그 이전
·
Algorithms/Brute Fource
https://wch-m.tistory.com/
1주차. 데이터베이스 & 관계형 데이터베이스 기본 개념
·
CS./데이터베이스
1. 파일시스템과 데이터베이스의 차이점에 대해서 설명해주세요.파일시스템에서는 데이터를 파일로 관리합니다. 데이터를 파일로 관리할 경우 중복이 발생할 수 있고 일관성이 깨질 수 있습니다.반면, 데이터베이스에서는 데이터를 DBMS을 통해 관리합니다. DBMS를 통해 데이터의 중복을 방지하고 일관성을 유지할 수 있습니다. 또한 여러 사용자가 동시 사용할 수 있고 데이터 복구나 보안성까지 제공합니다.  파일 시스템데이터베이스 시스템데이터 구조데이터를 계층 구조의 디렉토리와 파일로 구조화논리적으로 연관된 데이터를 모아 구조화하며,DBMS를 사용하여 데이터를 관리일관성과 무결성또한 각 응용 프로그램 별로 독립된 파일을 가지므로 제이터의 중복 저장이 불가피하며, 데이터가 수정될 때 이로 인한 불일치 발생 가능ACI..
6. 주문 도메인 개발
·
Spring/JPA 1
1. 도메인 모델 패턴 vs 트랜잭션 스크립트 패턴 도메인 모델 패턴 - Entity에 비즈니스 로직을 구현 - Service 계층은 주로 엔티티에 필요한 요청을 위임하는 역할 - Entity에 대한 테스트를, 데이터베이스나 JPA와 관계없이 쉽게 만들 수 있음. ex. (실무에서는) Item Entity에 대한 removeStock() 메서드의 단위테스트를 만들어주는 게 낫다. 트랜잭션 스크립트 패턴 (일반적인 SQL 패턴) - Service 계층에 비즈니스 로직을 구현 - Entity는 단순하게 데이터를 전달하는 역할 정리 - 프로젝트의 성격과 요구사항에 따라 선택할 수 있다. - 도메인 모델 패턴은 객체지향적이며 엔티티 중심의 설계를 지향, 엔티티의 비즈니스 로직을 명확하게 표현할 때 유용하다. -..
5. 상품 도메인 개발
·
Spring/JPA 1
객체지향적 프로그래밍 [도메인 주도 설계] (ex. OrderService : 비즈니스 로직 ) - Service에서 엔티티를 가져와서 비즈니스 로직을 작성하기보다는, Entity의 핵심 비즈니스 로직을 해당 엔티티 내에 존재하게 코드를 작성한다. 즉, Service는 비즈니스 로직을 호출하는 역할만 한다. (ex. ItemService, MemberService : DB 로직) - Service는 Repository에 위임만 하는 형식이다. 간단한 경우에는, Controller에서 바로 Repo에 접근해서 Service(DB 로직)을 실행해도 되는지에 대해서, 잠깐 고민해보자! → Controller는 요청을 처리하고 적절한 Service를 호출하고, DB 로직을 실행하는 것이 객체지향적 Service..
4. 회원 도메인 개발
·
Spring/JPA 1
1. SQL vs JPQL sql : 테이블을 대상으로 쿼리 jpql : 엔티티를 대상으로 쿼리 2. 트랜잭션, @Transactional(readOnly = "") 트랜잭션 : 데이터를 추가, 변경할 때 트랜잭션 안에서 실행되어야 한다. @Transactional javax : Java EE에서 제공하는 JTA를 사용하여 트랜잭션 관리 spring : DB 트랜잭션을 관리하는 데 사용 @Transactional(readOnly = true) defalut = "false" readOnly : 트랜잭션에 읽기 전용 모드 설정 → 성능 최적화, DB 변경 방지 *쓰기 작업에서 readOnly = true 로 설정 시, 데이터 수정이 안 된다. 3. 트랜잭션과 영속성 컨텍스트, @Transcational(r..