전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Spring Framework/JPA

[JPA] JPA 영속성 컨텍스트 이해하기, 영속성 컨텍스트 장점, persist, flush

(인프런) 자바 ORM 표준 JPA 프로그래밍 - 기본편- 을 바탕으로 작성하였습니다. https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ※ JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 ( Object Relational Mapping ) 객체 - 데이터베이스 영속성 컨텍스트 이해하기 1. EntityManagerFactory와 EntityManager ✔ EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유하여 사용합니다. ✔ EntityManager는 Thread 간에 공유하지 않습니다. ✔ EntityManager를 통해서 영속성 컨텍스트에 접근할 수 있습니다. ✔ JPA의 모든 데이터 변경은 트랙잭..

Spring Framework/Spring

[Spring] 스프링 중복 빈 해결 방법, Bean이 2개 이상일 때

스프링 빈을 조회할 때 메서드 이름 없이 타입으로만 조회하게 되면 스프링 빈이 2개 이상 조회될 수 있는 문제가 있습니다. @Autowired는 객체의 타입(Type)으로 조회합니다. @Autowired private DiscountPolicy discountPolicy // 위의 코드는 // ac.getBean(DiscountPolicy)와 유사하게 동작합니다 @Component public class FixDiscountPolicy implements DiscountPolicy {} // 두 스프링 빈 모두 타입이 DiscountPolicy @Component public class RateDiscountPolicy implements DiscountPolicy {} ✔ 타입으로만 조회하게 되면 스프..

Spring Framework/Spring

[Spring] 스프링 싱글톤 컨테이너, 스프링 컨테이너

스프링 없는 순수한 DI Container ✔ 스프링을 사용하지 않는 DI 컨테이너인 AppConfig는 사용자가 요청을 할 때마다 객체를 계속해서 새로 생성합니다. -> 요청할 때마다 객체를 계속해서 생성하므로 메모리 낭비가 심합니다. 해결방안 ✔ 해당 객체가 딱 1개만 생성되고 (Singleton), 공유하도록 설계하여 반복 생성되는 구조를 피하는 것입니다. public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); // 1. 조회: 호출할 때 마다 객체를 생성 MemberService memberService1 = appCon..

Algorithm/Boj

[BOJ] 백준 파이썬 13237 - Binary Tree

문제 입력 및 출력 코드 n = int(input()) graph = [0 for _ in range(n+1)] for i in range(n): node = int(input()) graph[i+1] = node for i in range(n): cnt = 0 v = graph[i+1] if v == -1: print(cnt) else: while v != -1: v = graph[v] cnt += 1 print(cnt) 풀이 * graph 변수를 입력받는 노드의 크기 + 1 크기로 초기화하여, 각각의 n 노드의 부모의 위치를 저장한다. * cnt 변수는 부모 노드로 위치한 횟수를 더하여, 해당 노드의 높이를 나타냅니다. ( v == -1 이면 루트 노드이기에 0을 출력합니다.) * 루트 노드가 아닌 ..

AI/Machine Learning

[머신러닝] 비지도학습 K-평균 알고리즘 및 실루엣 계수

파이썬 머신러닝 완벽가이드 - 저자: 권철민 - 위 책을 바탕으로 정리한 내용입니다. 비지도 학습이란 정해져 있는 값(라벨)이 없는 데이터를 (데이터 피처 값을 통해) 비슷한 특징끼리 군집화하여, 이후에 입력하는 새로운 데이터에 대한 결과를 예측하는 학습을 의미합니다. K-평균 알고리즘 (군집화) 군집 중심점이라는 특정한 임의의 지점을 선택해, 해당 중심에 가장 가까운 포인트들을 선택하는 기법입니다. 군집 중심점은 선택된 포인트(데이터)의 평균 지점으로 이동하고, 이동된 중심점에서 다시 가까운 포인트를 선택합니다, 다시, 중심점을 평균 지점으로 이동하는 프로세스를 반복적으로 수행하며, 모든 데이터 포인트에서 더 이상 중심점의 이동이 없을 경우에 반복을 멈춥니다. 1) 군집화의 기준이 되는 중심을 구성하려..

Git

[Git] 깃허브에 폴더 및 파일 올리기 - git 필수 명령어 정리

깃을 이용해 작업 중인 파일을 원격 저장소(Github)에 올리는 방법입니다. 기본적으로 자주 사용하는 git 명령어에 대해 작성하겠습니다. [ 1단계. 내 컴퓨터에 로컬 저장소 만들기 ] // 작업 폴더에서 git을 쓰기 위한 첫 단계 git init -> 폴더에 .git 파일이 생성되는데, 여기에 git 을 사용한 기록이 남습니다. (숨긴 파일로 저장되어 있어, 우클릭 후 숨긴 파일 보기 해야 볼 수 있음) [ 2단계. 작업 파일 staging area 에 올리기 ] // 로컬 저장소에 올리기 위해서 Staging area에 먼저 올려야 함 git add "파일명" // 여러 개의 파일 동시에 올릴 수 있음 git add "파일명1" "파일명2" // 모든 파일을 스테이징함 (올림) git add ...

Python/Flask

[Flask] 파이썬 flask의 기능 url_for, redirect로 동적 라우팅하기

Flask를 공부하면서 url_for(), redirect() 함수를 자주 사용하는데, 정확하게 기능을 파악하고자 적게 되었습니다. ^&^ url_for() : 주로 웹 페이지를 이동(변경)할 때, 즉 다음 페이지의 URL을 url_for() 함수에 넣어서 전달합니다. 또는 url_for( ) 괄호 안에 route 함수 명을 넣으면 해당 route가 가지는 url 주소를 가져옵니다. flask는 url_for()을 통해 python 파일과 html 파일 간의 URL 및 데이터(파라미터)까지 편하게 전달할 수 있습니다. from flask import Flask, url_for @app.route("/") def hello(): return render_template('hello.html') @app.r..

Algorithm/Boj

[백준] 24445번 : 너비우선 탐색 - 파이썬 풀이

문제 코드 from collections import deque import sys input = sys.stdin.readline n, m, r = map(int, input().split()) # n : 정점 m : 간선의 수 r :시작 정점 graph = [[] for _ in range(n+1)] # 빈 그래프 2차원 배열 생성 for i in range(m): a, b = map(int, input().split()) graph[a].append(b)# 연결된 정점들 입력하기 graph[b].append(a) visited = [0] * (n+1)# 정점 n이 몇 번째에 방문하는지 count = 1# 방문하는 차례 visited[r] = 1# 시작 정점 r이 첫 번째 순서 queue = dequ..

kylo
오늘도 열심히 - BE