본문 바로가기

전체 글

(53)
삼성 SDS 2022 동계 대학생 알고리즘 특강 백준 문제 알고리즘 특강을 진행하면서 풀었던 문제와 같이 추천해줬던 문제이다. 알고리즘 기초 3425 - 고스택 3055 - 탈출 1065 - 한수 1713 - 후보 추천하기 1103 - 게임 1039 - 교환 1920 - 수 찾기 9663 - N-Queen 1759 - 암호 만들기 2580 - 스도쿠 1339 - 단어 수학 15686 - 치킨 배달 시간복잡도 2003 - 수들의 합 2805 - 나무 자르기 2748 - 피보나치 수 2 2517 - 달리기 1806 - 부분합 2096 - 내려가기 2143 - 두 배열의 합 1072 - 게임 7453 - 합이 0인 네 정수 2842 - 집배원 한상덕 11003 - 최솟값 찾기 자료구조 10828 - 스택 10845 - 큐 1991 - 트리 순회 2042 - 구간 합 ..
[스프링 입문] 6. AOP 만약에 모든 method의 호출 시간을 측정하고 싶다고 했을 때, 호출 시간을 측정하는 것이 공통 관심 사항이 되고, 핵심 로직을 핵심 관심 사항이라고 한다. 호출 시간을 측정하는 것은 한 메소드 전체를 감싸야하기 때문에, 따로 method를 만들어서 사용하기도 힘들다. 그럴 때 AOP를 사용해서 원하는 곳에 공통 관심 사항(시간 측정)을 적용한다. TimeTraceAop를 하나 만든다. @Component @Aspect public class TimeTraceAop { } AOP는 @Aspect라는 어노테이션이 필요하다. 또한 스프링 빈으로 등록해줘야하기 때문에 SpringConfig에 설정을 추가하거나, @Component 어노테이션을 달아준다. 보통 AOP는 직접 등록해서 사용한다. @Compone..
[스프링 입문] 5. 스프링 DB 접근 기술 순수 JDBC 스프링 통합 테스트 JDBC Template JPA 스프링 데이터 JPA h2 데이터베이스의 환경설정을 마쳤다. 순수 JDBC build.gradle에 관련 라이브러리와 application-properties에 연결 설정을 추가했다. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa JdbcMemberRepository를 새로 만..
[스프링 입문] 4. 회원 관리 예제 - 웹 MVC 개발 홈 화면 추가 웹 기능 - 회원 등록 웹 기능 - 회원 조회 홈 화면 추가 HomeController를 이용해 회원 등록, 조회 페이지로 넘어갈 수 있도록 한다. @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } Hello Spring 회원 기능 회원 가입 회원 목록 웹 기능 - 회원 등록 MemberController에 /members/new 부분을 추가하고, html 코드를 작성한다. @Controller public class MemberController { private MemberService memberService; @Autowired public MemberC..
[스프링 입문] 3. 스프링 빈과 의존관계 Component Scan과 자동 의존관계 설정 직접 Spring Bean 등록 이번에는 구현한 서비스가 화면상에서 동작하기 위해서 Controller와 연결되도록 한다. Controller가 Service를 통해서 회원을 등록하고 조회할 수 있도록 하는 것이 의존관계가 있다고 한다. Component Scan과 자동 의존관계 설정 가장 먼저 Controller는 @Controller 어노테이션을 붙이고 있다면 스프링이 실행될 때 가장 먼저 스프링 컨테이너에 Controller 객체를 생성해서 넣어둔다. 일단 MemberController를 controller 패키지 밑에 새로 만든다. @Controller public class MemberController { private final MemberSe..
[스프링 입문] 2. 스프링 웹 개발 기초 - 회원 관리 예제 비즈니스 요구사항 정리 회원 도메인과 레포지토리 만들기 회원 레포지토리 테스트 코드 회원 서비스 개발 회원 서비스 테스트 비즈니스 요구사항 정리 데이터 : 회원 id, 이름 기능 : 회원 등록, 조회 * 아직 데이터베이스를 뭘 사용할 지 정하지 않은 상태라고 가정 Controller : 웹 MVC의 Controller Service : 핵심 비즈니스 로직 구현 Repository : DB에 접근, 도메인 객체를 DB에 저장하고 관리 Domain : 비즈니스 도메인 객체, ex) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 회원 도메인과 레포지토리 만들기 DB가 선정되지 않았기 때문에 Repository를 Interface로 구현하고 변경할 수 있도록 설계하고, 첫번째로 구현체는 메모리 기..
[스프링 입문] 2. 스프링 웹 개발 기초 - view 정적 컨텐츠 MVC API 정적 컨텐츠 스프링부트는 static 폴더에 파일을 넣어둠으로써 정적 컨텐츠를 다룰 수 있다. MVC MVC가 hello 페이지를 만든 방식이다. @RequestParam을 통해서 get 인자를 넣을 수도 있다. name 인자에 spring을 넣으면 화면에 "hello spring"이 뜬다. API API방식은 @ResponseBody 어노테이션을 붙이고 viewResolver를 사용하지 않는다. http body에 return한 문자 내용을 그대로 반환한다. 소스를 보면 body에 별도의 html 코드 없이 그대로 이 들어가있는 것을 볼 수 있다. 객체를 직접 return할 수도 있다. 객체를 return하면 화면에 JSON 형식의 string으로 표시된다.
[스프링 입문] 1. 프로젝트 환경설정 프로젝트 생성 스프링 프로젝트는 https://start.spring.io 에서 생성할 수 있다. Project : Gradle Project Spring Boot 버전 : 2.6.4 Java 버전 : 11 Dependency : Spring Web, Thymeleaf 스프링부트 버전은 강의에서는 2.3.x를 사용했지만 2.3.x 버전이 없어서 SNAPSHOT이나 M1, M2버전이 아닌 가장 최신 버전을 사용했다. Welcome Page 스프링부트는 static/index.html을 올려두면 Welcom Page 기능을 제공한다. 빌드하고 실행하면 화면이 뜬다. 여기서 Thymeleaf를 사용하면 프로그래밍이 가능해진다. Thymeleaf를 사용하면, Controller가 path를 mapping하고 r..