일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Mac
- Kafka
- 머신러닝
- 젠킨스
- java
- 클러스터
- spring
- SpringBoot
- 자동
- EMR
- ec2
- vue
- login
- aws
- 로그인
- 예제
- Redis
- 자바
- redash
- Jenkins
- fastcampus
- hive
- Cluster
- 간단
- 레디스
- Docker
- Zeppelin
- gradle
- 설정
- config
- Today
- Total
목록분류 전체보기 (197)
코알못

🌱 재귀함수에 대해서 알아보자!재귀함수란, 자기 자신을 다시 호출하는 함수를 말한다.말 그대로, 함수가 자기 자신을 반복적으로 부르는 구조라고 할 수 있다!재귀를 사용하면 코드를 간결하게 표현할 수 있고,특히 반복적인 구조나 문제를 잘게 쪼개는 상황에서 유용하게 쓰인다.📌 재귀함수는 언제 고려해야할까?재귀함수는 다음과 같은 상황에서 고려해볼 수 있다반복적인 계산 구조일 때탐색 범위를 계속 줄여야 할 때🚨 재귀함수의 핵심: 탈출 조건!재귀함수를 사용할 때 가장 중요한 건 탈출 조건이다!자기 자신을 계속 부르다 보면 무한 루프에 빠질 수 있기 때문에,어디선가 반드시 멈춰야 한다.이걸 탈출 조건이라고 한다.팩토리얼 예제로 재귀를 이해해보자!팩토리얼은 1부터 N까지의 정수를 모두 곱한 값을 말한다.3!이..

탐색에 대해서 알아보자!데이터 속에서 원하는 값을 찾는 대표적인 방법에는순차 탐색(Sequential search)과 이진 탐색(Binary search)이라는 방식이 있다.이 둘은 어떤 차이가 있을까? 그리고 이진 탐색은 왜 더 빠르다고 할까?지금부터 함께 알아보자!순차 탐색(Sequential search)이란?순차 탐색은 말 그대로 데이터를 앞에서부터 하나씩 차례대로 확인해보는 방법이다.리스트의 첫 번째 인덱스부터 시작해서,찾고자 하는 값이 나올 때까지 계속 다음 값을 확인해나간다.👉 즉, 모든 데이터를 순서대로 검사하는 방식이라고 할 수 있다!✅ 시간 복잡도는?O(N)데이터가 100개 있다면, 최악의 경우 100번을 다 확인해야 한다.데이터가 많아질수록 시간이 오래 걸리게 된다.이진 탐색(Bin..

시간/공간 복잡도란?시간 복잡도는 알고리즘이 실행되는데 걸리는 시간/사용되는 공간을 수학적으로 표현한 개념입니다. 입력 크기 N이 커질수록 얼마나 많은 연산이 수행되는지를 알려주기 때문에, 알고리즘의 성능 비교에 유용 합니다.시간 복잡도 계산법📌 예제 코드로 살펴보기아래 코드는 리스트 안에서 가장 큰 숫자를 찾는 간단한 함수입니다:def find_max_num(array): for number in array: is_max_num = True for compare_number in array: if number 이 코드를 기준으로, 각 부분이 얼마나 많은 연산을 수행하는지 분석해보겠습니다.🔍 안쪽의 is_max_num = False 까지 걸리는 시간..
Maven, Tomcat, IntelliJ 설정 및 활용법1. Maven package와 install의 차이공통점두 명령어 모두 소스 코드를 컴파일하고 JAR 파일을 생성한다.차이점mvn package : 프로젝트를 빌드하고, 타겟 디렉토리에 .jar 또는 .war 파일을 생성한다.mvn install : package 단계까지 수행한 후, 생성된 JAR/WAR 파일을 로컬 저장소(~/.m2/repository)에 저장한다.2. Maven과 Gradle의 로컬 저장소 경로Maven: ~/.m2/repositoryGradle: ~/.gradle/cachesMaven과 Gradle은 의존성을 다운로드할 때, 먼저 로컬 저장소에서 찾고, 없을 경우 원격 저장소에서 가져온다.3. Tomcat을 여러 개 띄우는..

이번 시간에는 기본 문법 중 fetchjoin 사용 방법 , cese, 상수문자 더하는 방법을 알아보자! 우선 테스트를 위해 테스트 코드가 실행 되기전 초기 데이터 셋팅하는 코드를 작성 한다. @BeforeEach public void testEntity(){ query = new JPAQueryFactory(em); Team teamA = Team.builder() .name("teamA") .build(); Team teamB = Team.builder() .name("teamB") .build(); em.persist(teamA); em.persist(teamB); Member member1 = Member.builder() .username("member1") .age(10) .team(teamA..

이전 작성글에 이어서 진행해보도록 하자! 이번 시간에는 querydsl 기본 문법에 대해 알아볼예정이다! 우선 기본 데이터 생성하는 부분을 @BeforeEach 어노테이션을 달아서 테스트 코드 실행전에 해당 코드가 실행 되도록 하며 JPAQueryFactory를 상단에 정의 하여 다른 테스트 코드에서도 사용 할 수 있도록 한다. package study.querydsl.entity; import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.BeforeEach; import org.junit.ju..

Spring Data JPA 에서는 복잡한 쿼리 작성시 @Query 어노테이션을 이용하여 직접 문자열로 쿼리 작성 하였으며 동적 쿼리 작성시 JPA Specification 기능을 이용하여 작성 해야 하나 난이도도 있고 조건에 따른 메소드를 계속적으로 만들어야 한다. 이런 복잡한 쿼리나 동적 쿼리를 쉽게 작성할 수 있는것이 바로 QueryDSL 이며 다른 장점으로는 자바 코드이기에 문법 오류를 컴파일 시점에서 알 수 있다. 이제 실제로 장점을 차근차근 이용해보면서 알아보도록 하자! 우선 프로젝트를 생성해보자! 해당 사이트로 들어가 프로젝트를 생성한다. https://start.spring.io/ 위와 같이 선택하고 Dependncies의 ADD를 눌러 필요한 라이브러리를 추가하고 빨간 박스를 클릭하여 프..

Jpa 관련 어노테이션 중 알고 가야하는 어노테이션에 대해 정리 하였다. 어노테이션 설명 @Repository JPA 예외시 JPA Exception이 아닌 스프링이 정의한 공통 예외로 나가 공통 예외 처리가 가능하다. @Transactional 트랜젝션 적용으로 JPA 의 모든 변경 동작은 트랜젝션 안에서 동작해야하여 꼭 @Transactional 을 사용하는 클래스에서 선언해야 동작 하나 Spring Data JPA는 레파지토리 내에서 @Transactional 처리를 했기에 없어도 처리 가능하다. @Transactional(readOnly = true) 읽기 전용이기에 flush를 안해서 성능 향상 이점이 있다. 이제 Save 에 대해서 알아보자! Spring Data Jpa Save 로직을 한번 ..