전체 글 679

[TIL] 2일차 - 백준 1946 신입사원

https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Test implements Comparable{ int a, b; public Test(int a, int b){ this.a = a; this.b = b; } @..

ALGORITHM 2024.03.29

[Docker] TIL 1일차 - 도커 엔진 시작과 종료, 도커 컨테이너 실행

도커 엔진 시작/종료 도커 엔진은 설치와 함께 실행되며, 동작 상태로 남아있지만 컨테이너를 실행 중이 아니라면 컴퓨터의 리소스를 거의 차지하지 않으므로 문제는 없다. 도커 테스크톱은 도커 엔진을 자동으로 실행하도록 설정돼있다. 도커 엔진이 한번 종료되면 모든 컨테이너는 정지 상태가 된다. => 도커 엔진은 컴퓨터를 켰을 때 함께 자동으로 실행할 수 있지만, 컨테이너는 그렇지 않다. *Mac 환경 도커 엔진 시작 도커 데스크톱 애플리케이션을 클릭하면 자동으로 도커 엔진은 구동된다. 도커 엔진 종료 상태막대에서 도커를 클릭하여 "Quit Docker Desktop"을 클릭 컨테이너 사용 방법 컨테이너 사용의 기본은 도커 명령어이다. docker ⇒ docker 명령어 뒤에 오는 '무엇을' '어떻게' 에 해당..

DEVOPS/DOCKER 2024.03.27

[JPA] 실무 활용 - 스프링 데이터 JPA 와 Querydsl

스프링 데이터 JPA 리포지토리로 변경 public interface MemberRepository extends JpaRepository { List findByUsername(String username); // select m from Member m where m.username=? } @SpringBootTest @Transactional class MemberRepositoryTest { @Autowired EntityManager em; @Autowired MemberRepository memberRepository; @Test public void basicTest(){ Member member = new Member("member1", 10); memberRepository.save(me..

BACK/JPA 2024.03.15

[JPA] 실무 활용 - 순수 JPA 와 Querydsl

순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리로 Querydsl을 사용해보자 @Repository public class MemberJpaRepository { private final EntityManager em; // 순수 JPA 접근 private final JPAQueryFactory queryFactory; // querydsl 사용 위함 public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); } public void save(Member member){ em.persist(member); } public Optional findById(Lon..

BACK/JPA 2024.03.15

[JPA] Querydsl 중급 문법 (프로젝션, 동적 쿼리, 벌크 연산, SQL function)

중급 문법 프로젝션 대상이 하나면 타입을 명확하게 지정할 수 있음 프로젝션 대상이 둘 이상이면 튜플이나 DTO로 조회 프로젝션: select 대상 지정 프로젝션과 결과 반환 - 기본 @Data public class MemberDto { private String username; private int age; public MemberDto() { } public MemberDto(String username, int age) { this.username = username; this.age = age; } } @Test public void simpleProjection(){ // 프로젝션이 하나 List result = queryFactory .select(member.username) .from(m..

BACK/JPA 2024.03.15

[JPA] Querydsl 기본 문법 (검색, 조회, 정렬, 페이징, 집합, 조인등)

기본 문법 JPQL vs Querydsl @SpringBootTest @Transactional public class QuerydslBasicTest { @Autowired EntityManager em; JPAQueryFactory queryFactory; @BeforeEach public void before(){ queryFactory = new JPAQueryFactory(em); // 필드로 뺄 수도 있다. Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member me..

BACK/JPA 2024.03.15

[JPA] Querydsl 프로젝트 환경설정 - 설정과 검증

Querydsl 이란? 쿼리를 자바 코드로 작성할 수 있게 도와준다. 문법 오류를 컴파일 시점에 잡아준다. 동적 쿼리 문제도 해결해준다. Querydsl 설정과 검증 build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } de..

BACK/JPA 2024.03.15

[TDD] 테스트 주도 개발 시작하기 - TDD 시작(+예제)

TDD에 대해 공부하고 싶어 최범균 - 테스트 주도 개발 시작하기 책을 빌려서 읽기 시작했다. 차근차근 실습을 시작해보도록 한다. TDD(Test-driven Development) 테스트를 먼저 하고 그다음에 구현한다. package chap02; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class CalculatorTest { @Test // 메서드를 테스트 메서드로 인식한다. void plus(){ int result = Calculator.plus(1, 2); assertEquals(3, result); // 인자로 받은 두 값이 동일한지 비교 } } 이 ..

ETC 2024.03.11

[Docker] 도커란 무엇인가?

도커란? 도커는 '데이터 또는 프로그램을 격리시키는 기능을 제공하는 소프트웨어'이다. 이 기능은 주로 서버에 사용된다. 다양한 프로그램과 데이터를 각각 독립된 환경에 격리하는 기능을 제공한다. 운영체제 통째로 격리한다. 컨테이너와 도커 엔진 예를 들어 개인용 컴퓨터 또는 서버 상의 환경을 조립형 창고 같은 작은 방으로 분할한다 생각해보자. 그리고 이런 창고에 데이터나 프로그램을 두는 것이다. 이 조립형 창고를 컨테이너라고 한다. 그리고 이 컨테이너를 다루는 기능을 제공하는 소프트웨어가 도커다. 도커를 사용하려면 도커 소프트웨어 본체인 도커 엔진을 설치해야 한다. 그리고 도커 엔진을 사용해 컨테이너를 생성하고 구동시킬 수 있다. 이미지 컨테이너를 만드려면 도커 엔진 외에도 컨테이너의 빵틀과 같은 역할을 ..

DEVOPS/DOCKER 2024.03.05

[Spring] 스프링 MVC1- 웹 애플리케이션 이해(WAS, 서블릿, 쓰레드)

현재 거의 모든 형태의 데이터를 HTTP 로 전송한다. Web ServerHTTP 기반으로 동작정적 리소스(html, css , js, img..)제공, 기타 부가 기능ex) nginx, apache Web Application Server(WAS)HTTP 기반으로 동작프로그램 코드를 실행해 애플리케이션 로직 수행⇒ HTTP 요청이 오면 사용자에 따라서 다른 화면을 보여줄 수 있음정적 리소스도 제공 가능동적 html, http api(json) 생성 가능서블릿, jsp, 스프링 mvc가 WAS 에서 동작ex) tomcat, jetty WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다.   Web Server: 정적 리소스 제공하는 서버 WAS: 애플리케이션 로직을 실행하는 서버   WAS가 정적 ..

BACK/SPRING 2024.03.04
반응형