일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- MySQL
- 오블완
- golang
- Python
- java
- Vue.js
- 알고리즘
- spring security
- Gradle
- springboot
- JPA
- 롬복
- 객사오
- Codeup
- Spring
- H2 설치
- GitHub
- Postman
- 파이썬
- mariadb
- Git
- 클린 코드
- go
- 클린코드
- 스프링
- 티스토리챌린지
- thymeleaf
- Spring Boot
- 기초100제
- 코드업
- Today
- Total
목록Programming (61)
nyximos.log
H2 데이터베이스 Java로 작성된 오픈소스 RDBMS이다. 용량이 1.7M이라 가볍다. H2 데이터베이스는 자바가 설치되어 있어야 동작한다. H2 데이터베이스는 JVM 메모리 안에서 실행되는 임베디드 모드와 실제 데이터베이스처럼 별도의 서버를 띄워서 동작하는 서버 모드가 있다. 로컬 환경, 테스트 환경에서 많이 사용된다. H2 데이터베이스 설치 H2 Database Engine Windows Installer 또는 All Platforms을 내려받아서 압축을 푼다. 윈도우 기준 h2.bat 또는 h2w.bat을 실행한다. H2 데이터베이스를 서버 모드로 실행한다. 웹 브라우저에서 http://localhost:8082를 입력 사진과 같이 입력후 연결버튼을 누르면 test 데이터베이스에 서버모드로 접근한..
Git 데이터를 Change Set이나 변경사항(Diff)으로 기록하지 않고 일련 일련의 스냅샷으로 기록한다. 커밋하면 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타 데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(커밋 Object)를 저장한다. 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지를 알 수 있다. 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋 같은 경우에는 이전 커밋 포인터가 여러개 있다. 파일이 3개있는 디렉토리가 하나있고 파일을 Staging Area에 저장하고 커밋하는 예제 파일을 Stage Git repository에 파일을 저장(Blob) Stagi..
프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로 만들어 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹 MVC의 DispatchServlet이 FrontController 패턴으로 구현되어 있음 프론트 컨트롤러 도입 v1 기존 코드를 최대한 유지하면서 프론트 컨트롤러를 도입한다. 서블릿과 비슷한 모양의 컨트롤러 인터페이스 도입 각 컨트롤러는 이 인터페이스를 구현하면 된다. 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없..
자바 ORM 표준 JPA 프로그래밍 김영한 😵 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스 = 데이터 저장소 자바로 개발하는 애플리케이션 = 대부분 관계형 데이터베이스 사용 SQL Structured Query Language 데이터베이스의 데이터를 관리할 때 필요 1. 반복 CRUD 기능을 개발해보자. 1. 자바에서 사용할 회원 객체 생성 2. 데이터베이스를 관리할 목적으로 회원용 DAO(데이터 접근 객체) 생성 3. 회원 조회 기능 개발 1) 회원 조회용 SQL 작성 2) SQL 실행 (JDBC API 사용) 3) 조회결과와 회원 객체를 매핑 4. 회원 등록 기능 개발 1) 회원 등록용 SQL 작성 2) 회원 객체의 값을 꺼내서 SQL에 전달 3) SQL 실행 (JDBC API 사용) ..
🧶 Vue.js란? 사용자 인터페이스를 만들기 위한 프로그레시브 프레임워크 MVVM 패턴의 ViewModel 레이어에 해당하는 화면단 라이브러리 데이터 바인딩과 화면 단위를 컴포넌트 형태로 제공하며, 관련 API 를 지원하는데에 궁극적인 목적이 있음 Angular에서 지원하는 양방향 데이터 바인딩 을 동일하게 제공 하지만 컴포넌트 간 통신의 기본 골격은 React의 단방향 데이터 흐름(부모 -> 자식)을 사용 다른 프런트엔드 프레임워크(Angular, React)와 비교했을 때 상대적으로 가볍고 빠름. 문법이 단순하고 간결하여 초기 학습 비용이 낮고 누구나 쉽게 접근 가능 📌 MVVM 패턴 Backend 로직과 Client의 마크업 & 데이터 표현단을 분리하기 위한 구조로 전통적인 MVC 패턴의 방식에서..
Repository repo라고 한다. 파일이나 폴더를 저장해 두는 곳 고유한 기록이 있는 git 작업 공간 모든 git repo에는 고유한 기록이 있다. 각 repository는 연결되어 있지 않다. Git은 원격 저장소 Remote Repository와 로컬 저장소 Local Repository 두 가지 종류의 저장소를 제공한다. 원격 저장소 : 서버에서 관리, 여러 사람이 함게 공유 로컬 저장소 : 내 PC에 저장됨 새 repository 인스턴스화 하기 먼저 저장소로 등록할 폴더로 이동한다. 이후 git init 명령어를 입력한다. git init 터미널에 있는 모든 위치에서 새 git 저장소 인스턴스 / 초기화 git status git 상태 확인 ls -a 숨겨진 파일을 확인하는 명령어 방금 ..
PrintWriter의 getWriter() 메소드를 사용하여 서블릿과 자바 코드만으로 동적인 HTML을 만들 수 있다. 그러나 이러한 방법은 복잡하고 비효율적이므로 템플릿 엔진을 사용한다. 🍕 템플릿 엔진 HTML의 문서에서 필요한 곳만 코드를 적용하여 동적으로 변경해준다. 많은 코드를 줄일수 있고 재사용성이 높으며 유지보수가 용이하다. JSP, Thymeleaf, Freemarker, Velocity 등이 있다. 최근에는 Thymeleaf를 많이 쓰는 추세이며 레거시 프로젝트의 경우 JSP를 사용한 것을 많이 볼 수 있다. 템플릿 엔진을 사용하기 위해서 해당 라이브러리를 추가해야 한다. build.gradle에 사용할 dependency를 추가 dependencies{ //JSP 추가 implemen..
스프링 부트는 톰캣 서버를 내장하고 있어서, 톰캣 서버를 설치하지 않더라도 편리하게 서블릿 코드를 실행할 수 있다. 🤔 서블릿이란? 동적인 웹 페이지를 만들 때 사용되는 자바 기반 웹 애플리케이션 프로그래밍 기술 클라이언트의 요청을 처리 후 결과를 반환해준다. javax.servlet 및 javax.servlet.http 패키지는 서블릿을 작성하기 위한 인터페이스 및 클래스를 제공합니다. 개발자는 javax.servlet.http 패키지의 HttpServlet 클래스를 상속받아 서블릿을 구현할 수 있다. 🌳 서블릿 생명 주기 서블릿의 생명 주기는 서블릿이 배포된 컨테이너에 의해 제어된다. 클라이언트가 Servlet에게 요청하면 1. servlet의 인스턴스가 존재하지 않는 경우, 웹 컨테이너는 1-1 S..