분류 전체보기 185

Dynamic SQL (MyBatis 동적 SQL), AOP(Aspect Oriented Programming)

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. MyBatis 동적 SQL 1) Dynamic SQL - 검색조건에 따라 검색해야 하는 SQL문이 달라지기 때문에 이를 처리하기 위해서 동적 SQL이 사용됨 2) MyBatis의 표현식 (1) if - MyBatis에서 가장 공통적으로 사용되는 요소 * 아래 구문은 파라미터 중 title에 값이 존재할 경우 and title like #{title} 구문을 본 쿼리문에 포함시킨다. select * from blog where state = 'ACTIVE' and title li..

MyBatis 소개, Mapper XML 파일

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 *모든 이미지의 출처는 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'에 있습니다 1. MyBatis 소개 1) MyBatis의 개요 - 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 Object Mapper - SQL을 별도의 파일로 분리해서 관리하게 함 - 객체-SQL 사이의 파라미터 Mapping 작업 자동 진행 -> 많은 인기를 얻고 있음 - ORM(Object Relation Mapper) 아님 - Hibernate나 JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담이 없음 ->개발..

1. 컴퓨팅 사고 - 스크래치: 기초

*boostcourse의 '모두를 위한 컴퓨터 과학 (CS50 2019)' 코스 강의를 듣고 정리한 글입니다. 모든 내용, 이미지의 출처는 boostcourse의 해당 코스에 있습니다. 1. 스크래치란? - MIT의 미디어 랩에서 만든 그래픽 언어 (scartch.mit.edu에서 사용 가능) - 퍼즐 조각처럼 보이는 블럭들을 끌어 놓는 방식으로 연결시켜 컴퓨터가 무엇을 할 지 단계적으로 프로그래밍 함 2. 스크래치 편집기 화면 구성 (scartch.mit.edu에서 Create를 클릭하면 나오는 화면) 1) 여러 색으로 나누어진 퍼즐 조각들 2) 거대한 흰 캔버스 - 왼쪽의 퍼즐 조각들을 끌어당기고 서로 연결하여 프로그램을 만들 수 있음 3) 초록색 깃발/정지 버튼 - 각각 프로그램 실행/중단 4) 스..

Spring-Data Access, DataSource, Servlet Context, Context 분리와 전략

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. Spring-Data Access 1) DAO 디자인 패턴 - 비즈니스 서비스와 로우레벨의 데이터 엑세스 작업을 분리 *위치 순서 -> 비즈니스 레이어(Business Layer), DAO, 데이터베이스(DB) - DAO 레이어: 비즈니스 레이어와 데이터베이스 가운데에 위치, CRUD(Create, Read, Update, Delete) 작업 수행 2) 데이터 엑세스 기술 (ORM-Object Relation Mapping) - JDBC: 자바에서의 관계형 데이터베이스 접속 기술, JDK 레벨에서 지원, 다른 고수준 기술의 기반이 됨 - Spring JDBC: 스프링 자체적으로 ..

1. 컴퓨팅 사고 - 알고리즘

*boostcourse의 '모두를 위한 컴퓨터 과학 (CS50 2019)' 코스 강의를 듣고 정리한 글입니다. 모든 내용의 출처는 boostcourse의 해당 코스에 있습니다. 알고리즘 - 문제 해결의 관점에서는, '문제 해결을 위한 단계적 방법' - 대부분의 경우, 문제 해결은 단지 우리가 가지고 있는 생각이나 직관들을 기계나 다른 사람들이 이해할 수 있는 방식으로 번역하는 것 1) 알고리즘의 예시 - 전화번호부에서 Mike Smith 찾기 (1) 전화번호부를 집어 들고 첫 페이지를 펼친 후 Mike Smith가 그 페이지에 있는지 찾음. Mike Smith 를 찾을 때까지 혹은 전화번호부가 끝날 때까지, 'Mike Smith'가 이번 페이지에 없다면 다음 페이지로 넘기는 작업을 반복함. Mike Sm..

static file 처리와 FileUpload, JUnit & Spring-Test

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. static file 처리와 FileUpload 1) Static Resource 처리 (1) Static Web Resource 처리하기 - 서버의 처리가 필요 없는 static web resources는 요청 시 서버를 거치지 않고 곧바로 응답해야 함 - 특정 URL로 요청이 오면 static resource로 인식하고 바로 응답 수행 (2) - mapping: HTTP 요청 URL - location: 실제 응답할 파일이 있는 위치 예시) 요청: http://localhost:8080/hello/resources/scripts/jQuery.js 응답: /WEB-INF/res..

1. 컴퓨팅 사고 - 2진법, 정보의 표현

*POSTECH 청년 AI · Big Data 아카데미(https://pabi.smartlearn.io/)의 'Computational Thinking (컴퓨팅 사고) Ⅰ' 코스 강의가 9월 30일까지었고 12월에 다시 개강한다고 해서, 그동안은 다른 강의를 듣기로 했습니다... *boostcourse의 '모두를 위한 컴퓨터 과학 (CS50 2019)' 코스 강의를 듣고 정리한 글입니다. 모든 이미지의 출처는 boostcourse의 해당 코스에 있습니다. 1. 2진법 1) '정보 자체의 표현 방법' 중 하나 2) 컴퓨터의 언어가 2진법인데, 0과 1로만 말함 -> 컴퓨터에서 실제로 작동하는 방법? : 각 자리수를 2의 거듭제곱 형식으로 표현. 우리가 아는 10진법은 일의 자리에서 0~9까지 채우면 십의 ..

@Controller, HTTP 파라미터 처리, RESTful API

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. @Controller (1) Controller 1) 사용자 요청(URL 기반)에 해당하는 Controller의 특정 메소드가 호출됨 2) Controller는 요청의 파라미터가 있으면 처리 3) 비즈니스 처리를 위해서 서비스 컴포넌트를 주입받아 실행 4) 실행된 결과를 전달받아(화면에 대한 정보와 함께) DispatcherServlet에게 반환 *DispatcherServlet : 웹 어플리케이션 최전방에서 사용자 요청 접수 -> URL 기준으로 요청을 처리할 Controller 찾음 -> 해당 Controller 호출 및 실행 *사용되는 Annotation : @Control..

컴퓨팅 사고 I: WEEK 3-1, 3-2

*POSTECH 청년 AI · Big Data 아카데미(https://pabi.smartlearn.io/)의 'Computational Thinking (컴퓨팅 사고) Ⅰ' 코스 강의를 듣고 정리한 글입니다 *모든 이미지의 출처는 https://pabi.smartlearn.io/ 입니다 1. 계산 과정 바라보기 1) 나누어 풀기 문제를 작은 문제 여러 개로 나누어 생각하기 - 작은 문제는 각기 풀 수 있어야 함 - 계산 자료를 넘겨주는 것 외에는 연관성이 없어야 함 2) 쪼개 풀어 합치기 - 계산 자료를 여러 개로 쪼갠 뒤 쪼개서 나온 계산 자료들로부터 각각 답을 구하고, 이를 조합하여 원래 문제의 답을 찾아냄 3) 눈앞 찾기 (예시: 최단 경로를 찾는 문제) - 계산 자료 전체를 분석하기 어려울 때 쓸..

Layered Architecture & @Component, Spring MVC 소개

*22년 4월 한 달간 한국이러닝협회의 '실전 개발자를 위한 Spring Framework'를 수강하고 정리한 내용입니다 1. Layered Architecture & @Component 1) Layered Architecture (1) 특징: 계층화 아키텍처- 효율적인 개발과 유지보수를 위해 계층화하여 개발- 대부분의 중/대규모 어플리케이션에서 적용- 각 레이어는 독립된 R&R을 가짐 (2) Layered Architecture의 영역은 3가지로 구분됨 - 프레젠테이션 영역, 비즈니스 영역, 데이터 영역 - 프레젠테이션 영역: 사용자와 상호작용을 담당, 사용자의 요청을 분석/응답 - 비즈니스 영역: 기능을 수행, 트랜잭션 수행 - 데이터 영역: 데이터의 저장과 조회를 담당, 주로 데이터베이스와 연동하여..