분류 전체보기

Algorithm/PTUStudy

12주차. 해시 테이블(중복 문자 없는 가장 긴 부분 문자열)

30. 중복 문자 없는 가장 긴 부분 문자열 https://leetcode.com/problems/longest-substring-without-repeating-characters/

Algorithm/PTUStudy

12주차. 해시 테이블(보석과 돌)

29. 보석과 돌 https://leetcode.com/problems/jewels-and-stones/ Merge k Sorted Lists - LeetCode Can you solve this real interview question? Merge k Sorted Lists - You are given an array of k linked-lists lists, each linked-list is sorted in ascending order. Merge all the linked-lists into one sorted linked-list and return it. Example 1: Input: lis leetcode.com 📌문제 J는 보석이며 S는 갖고있는 돌이다. S에는 보석이 몇 개나 있을..

Language/Java

[JAVA] Optional이란?

자바 8부터 지원하는 Optional에 대해서 알아보자. Optional 이란? java.util.Optional 클래스 Optional클래스는 Integer나 Doble 클래스처럼 'T' 타입의 객체를 포장해주는 래퍼 클래스(Wrapper class)이다. 따라서 Optional 인스턴스는 모든 타입의 참조 변수를 저장할 수 있다. 그럼 Optional은 어떨 때 사용하는가? Optional 객체를 사용하면 예상치 못한 NPE(NullPointerException) 예외를 제공되는 메소드로 간단히 회피할 수 있다. 즉, 복잡한 조건문없이 null값으로 인한 예외를 처리할 수 있게 된다. Optional 객체의 생성 of()메소드나 ofNullable() 메소드를 사용해서 Optional 객체를 생성할 ..

Spring/스프링5 프로그래밍 입문

초보 웹 개발자를 위한 스프링5 프로그래밍 입문 REVIEW

* 주관적인 생각으로 작성한 리뷰입니다. 계기 스프링 부트와 AWS로 혼자 구현하는 웹서비스를 읽으면서 스프링이 어떤 건지 대강 알겠다만, 작동원리나 깊은 개념은 설명해주지 않아 이론적인 부분이 부족했다. 그랬던 탓일까. 스프링 시큐리티부터 막혀서 토비의 스프링을 구매했다. 토비의 스프링은 입문자가 읽기에 이해하기 어려운 부분이 있었다. 때문에 스프링을 이미 알고 있는 사람이 읽어야 학습효과가 있을거라 생각했다. 그래서 김영한님 강의를 다시 보고 MVC파트까지 결제할까 고민했지만, 결제 금액도 상당한데다 강의를 전부 보기에는 시간이 많이 걸릴 것 같아 책을 찾아봤다.(요즘 강의보다 책을 선호 중임) 그렇게 알게 된 책이 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문이었다. 당근해와서 야무지게 읽었다...

Database/SQL

[SQL] SQL SELECT 실행 순서

SQL 문법의 순서와 실행 순서는 서로 다르므로 이 점에 주의해야 한다. SQL 문법의 순서 SELECT: 쿼리의 결과로 얻고자 하는 열을 선택한다. FROM: 데이터를 가져올 테이블을 지정한다. WHERE: 가져올 데이터를 필터링하는 조건을 지정한다. GROUP BY: 그룹화할 열을 지정한다. HAVING: 그룹화된 결과를 필터링하는 조건을 지정한다. ORDER BY: 결과를 정렬할 열을 지정한다. SQL 실행 순서 FROM: 데이터를 가져올 테이블을 지정한다. JOIN: 테이블을 결합한다. WHERE: 가져올 데이터를 필터링한다. GROUP BY: 그룹화한다. HAVING: 그룹화된 결과를 필터링한다. SELECT: 가져올 데이터를 지정한다. DISTINCT: 중복을 제거한다. ORDER BY: 결과..

Spring/스프링5 프로그래밍 입문

Chapter 17. 프로필과 프로퍼티 파일

프로필 개발을 진행하는 동안에는 실제 서비스 목적으로 운영중인 DB를 이용할 수는 없다. 개발하는 동안에는 개발용 DB를 따로 사용하거나 개발 PC에 직접 DB를 설치해서 시용한다. 처음부터 개발 목적 설정과 실 서비스 목적의 설정을 구분해서 작성하기 위한 스프링 기능이 프로필(profile) 이다. @Configuration 설정에서 프로필 사용하기 @Configuration @Profile("dev") public class DsDevConfig { @Bean(destroyMethod = "close") public DataSource dataSource() { DataSource ds = new DataSource(); ds .setDriverClassName("com.mysql.jdbc.Drive..

Spring/스프링5 프로그래밍 입문

Chapter 16. JSON 응답과 요청 처리

JSON 개요 JSON(JavaScript Object otation)은 간단한 형식을 갖는 문자열로 데이터 교환에 주로 시용한다. 다음은 JSON 형식으로 표현한 데이터의 예이다. { "name": “유관순", "birthday": "1902-12-16", "age": 17, "related": "남동순" , ” 류예도"] "edu": [ { "title:": ”이화학당보통과", "year": 1916 }, { "title": ”이화학당고등과", "year": 1919 } ] } Jackson 의존 설정 Jackson은 자바 객체와 JSON 형식 문자열 간 변환을 처리하는 라이브러리이다. 스프링 MVC에서 Jackson 라이브러리를 이용해서 자바 객체를 JSON으로 변환하려면 클래스 패스에 Jackso..

Spring/스프링5 프로그래밍 입문

Chapter 15. 간단한 웹 어플리케이션 구조

간단한 웹 어플리케이션 구성요소 프론트 서블릿 컨트롤러 + 뷰 서비스 DAO 프론트 서블릿: 웹 브라우저의 모든 요청을 받는 창구 역할을 하며, 요청을 분석해서 알맞은 컨트롤러에 전달한다. 스프링 MVC에서는 DispatcherServlet이 프론트 서블릿의 역할을 수행한다. 컨트롤러: 실제 웹 브라우저의 요청을 처리한다. 컨트롤러는 클라이언트(브라우저)의 요청을 처리하기 위해 알맞은 기능을 실행하고 그 결과를 뷰에 전달한다. 컨트롤러의 주요 역할은 다음과 같다. 클라이언트가 요구한 기능을 실행 응답 결과를 생성하는데 필요한 모델 생성 응답 결과를 생성할 뷰 선택 서비스: 기능의 로직을 구현한다. 사용자에게 비밀번호 변경 기능을 제공하려면 수정 폼을 제공하고, 로그인 여부를 확인하고, 실제로 비밀번호를 ..

Spring/스프링5 프로그래밍 입문

Chapter 14. MVC 4: 날짜 값 변환, @PathVariable, 익셉션 처리

날짜를 이용한 회원 검색 기능 public class MemberDao { private JdbcTemplate jdbcTemplate; private RowMapper memRowMapper = new RowMapper() { @Override public Member mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member(rs.getString("EMAIL"), rs.getString("PASSWORD"), rs.getString("NAME"), rs.getTimestamp("REGDATE").toLocalDateTime()); member.setId(rs.getLong("ID")); return member;..

Spring/개념

[Spring] Filter, Interceptor, AOP의 차이점에 대해

AOP를 공부하게 되면 뒤따로오는 개념인 필터와 인터셉터. 인터셉터를 오늘 처음으로 어떤 것인지에 대해 공부하게 됐는데, AOP와 비슷하다 생각했다. 그래서 AOP와 인터셉터의 차이점에 대해 블로깅하면서 필터도 함께 알아볼 생각이다. 공통 기능 구현의 분리 웹 개발을 하다 보면 로그인 관련(세션처리), 로깅, 트랜잭션, 권한체크 등 공통 로직으로 처리해야 되는 업무가 생긴다. 이러한 기능을 반복해서 작성해야 한다면, 중복된 코드가 많아지게 되고, 유지보수가 힘들어지며 소스관리가 되지 않는다. 때문에 공통 기능은 핵심 기능과 분리하여 관리해야 한다! 그럼 어떻게 공통 기능을 관리해야 할까? 메소드 호출 앞, 중간, 뒤에 추가하여 공통 로직을 처리할 수 있는 방법이 3가지가 있다. Filter(필터) - 핸..

지구우중
'분류 전체보기' 카테고리의 글 목록 (5 Page)