분류 전체보기 1097

View 환경설정 { 내가 필요한 Spring 지식 찾기, Thymeleaf 지식 찾기, Spring 동작 환경 그림 }

스프링 입문 김영한 강사님 수업 정리 자료입니다. src - main - resources - static - index.html 은 Welcom page 가 됩니다. 즉, 홈페이지에 처음 들어왔을 때 보게되는 페이지를 의미합니다. 여기서 제작한 파일이 웰컴 페이지가 되는 것이죠. 그런데, 중요한 것은 이것이 아니라 Spring 은 웹 개발과 관련한 정말 광범위한 기능에 연관되기 때문에 내가 필요한 것을 잘 찾는 능력이 아주 중요하다고 할 수 있습니다. 내가 필요한 지식을 어디서 어떻게 찾을 수 있을까요? 프로그램 개발의 장점은 온라인에 모든 정보가 있다는 것이겠죠. spring.io 홈페이지에 들어가면 Learn 탭이 보입니다. 여기서 내가 필요한 정보를 검색해서 찾아볼 수 있습니다. 혹은 Spring..

라이브러리 살펴보기

스프링 입문 강의 김영한 강사님 수업 정리 자료임을 알립니다. External Libralies 를 살펴보면 내가 가져오지 않은 엄청나게 많은 외부 라이브러리들이 있는 것을 확인할 수 있습니다. 이렇게 많은 이유는 gradle 이나 maven 같은 빌드 툴들은 요즘 의존 관계를 관리를 해주게 되었습니다. 예를 들어서 starter-web 이 필요한 라이브러리는 tomcat 등의 의존관계가 필요합니다. 그래서 우리는 starter-web 만 필요하지만 얘가 의존하는 모든 라이브러리들이 있는데, gradle 과 maven 빌드 툴들이 이런 의존관계에 있는 라이브러리들을 모두 당겨오게되고, 결국 우리가 보는 것처럼 많은 외부 라이브러리들이 기본적으로 설치되어있는 것을 확인할 수 있습니다. IntelliJ 의 ..

인천디지털시험센터 가는 길 (국가 기사 자격증 시험)

가는 길 수인분당선 남동인더스파크역 방면 쪽에 있는 정문을 이용하는 것을 추천한다. 우선, 주차장이 정문을 통해서 들어가야 바로 주차가 가능하다. 주차 비용은 최초 30분 무료이고 이후에 30분당 1000 원이었나..? 서울 주차비에 비하면 아주 천사가 따로 없었다. 하루 최대 3000원을 청구했던 것 같다. 두 번째 이유는 정문으로 들어가면 안내 요원과 안내 푯말이 아주 많아서 길을 잃을 일이 없다. 너무 일찍 가진 말자 12시 40분 입실이라면 12시 40분 딱 맞춰서 가면 된다. 본인은 20분 전 쯤인 12시 20분 쯤 갔는데 지도에 보이는 후생과 2층 대기실로 안내받았다. 예전 학교 체육관 같은 공간인데 에어컨이 시원해서 좋았는데, 차타고 갔다면 차에 있으면 될 일이고 에당초에 시간 맞춰서 가면 ..

정보처리기사 필기 합격 후기 및 꿀팁

Intro 2023년 7월 8일 필기 시험을 합격했다. 점수는 75점. 걱정 많았던 필기시험이었던 만큼 준비하는 사람들에게 도움이 될 정보가 있다면 공유해보고자 한다. 참고로 합격 점수는 평균 60점 이상 각 과목 최저 40점 이상. 공부기간 & 투자시간 총 공부 기간 4.5주, 투자시간 50시간 공부 방법 Best 방법 1. https://www.comcbt.com/xe/iz cbt 활용 정보처리기사 필기 기출문제 전자문제집 CBT - 최강 자격증 기출문제 전자문제집 CBT 정보처리기사 필기 기출문제 전자문제집 CBT www.comcbt.com cbt 에 가면 전자문제집을 활용할 수 있다. 클릭하면 이런 화면이 나오는데, 한문제씩 풀기를 추천한다. 한문제씩 바로바로 풀고 결과 확인하고 풀이볼 수 있어서..

ORM 과 JPA 이해하기 & Java Optional 이해하기

ORM 과 JPA? JPA(Java Persistence API) 는 Java 언어를 통해서 데이터베이스와 같은 영속 계층을 처리하고자 하는 스펙입니다. JPA를 이해하기 위해서는 우선 ORM (Object-Relational Mapping) 이라는 기술에 대해서 먼저 설명해야만 합니다. ORM 란? ORM (Object Relation Mapping) 은 단어에서 보는 것과 같이 객체지향과 관련이 있다. ORM 을 간단히 이해하자면 '객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술'이라고 할 수 있습니다. 패러다임 입장에서는 '객체지향 패러다임을 관계형 패러다임으로 매핑(mapping)해 주는 개념'이라고 볼 수 있습니다. 기본적으로 자바와 데이터베이스가 유사한 점이 있는데, 자바의 클래스와 데..

JPA 이용 프로젝트 생성 & mariadb 연결 & External Dependencies 검색하기

우선 새로운 프로젝트를 생성합니다. Dependency 로 JPA 를 추가하고 Thymeleaf 는 제외합니다. 생성하고 나면 Dashboard 에 나의 프로젝트가 port 가 할당된 것을 볼 수 있다. 이것을 통해서 프로그램을 실행시켜보자. 마우스 우클릭해서 실행시키면 된다. 실행시키면 오류가 발생하는 것을 볼 수 있는데, JPA 를 사용했는데 필요한 설정을 해주지 않았기 때문이다. JPA 라이브러리를 추가한 다음에는 데이터베이스와 관련된 설정을 해야 한다. 2가지 설정을 해야 하는데, Mariadb 드라이버와 데이터베이스 정보를 설정해주어야 한다. 우선 mariadb 드라이버를 가져와봅시다. 메이븐 저장소에서 mariadb 를 검색합니다. 버전을 선택한 다음 우리가 현재 사용하고 있는 것이 Gradl..

데이터베이스 트랜잭션 회복 기법

회복 ? 트랜잭션 도중에 손상된 데이터베이스를 이전 상태로 복귀하는 작업이다. 트랜잭션의 연산을 수행할 때 데이터베이스를 변경하기 전에 로그 데이터를 생성한다. 취소 연산으로 데이텁이스에 쓰인 것도 수정할 수 있다. 장애의 유형 트랜잭션 장애, 시스템 장애, 미디어 장애 즉각 갱신 기법 - 트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터베이스에 반영하는 기법. - 갱신한 모든 내용을 로그에 보관한다. - 회복 작업을 위해 취소와 재시도 모두 사용 가능 연기 갱신 기법 Deffered Update - 트랜잭션을 완료할 때까지 데이터베이스에 갱신을 연기하는 기법 - 트랜잭션 수행으로 갱신할 내용은 로그에 보관한다. 트랜잭션이 부분 완료 시점에 Log 의 기록을 실제 데이터베이스에 반영한다. - 트..

스프링 컨테이너 { 컨테이너 애너테이션, 의존성 주입 }

스프링 프레임워크에서 스프링 컨테이너를 구성하고 빈을 관리하기 위해 다양한 애노테이션들이 있다. @Component 는 해당 클래스의 인스턴스가 컨테이너에 저장되도록 한다. @Autowired 는 클래스를 필드로 선언을 할 때, 예를 들어 Book 의 인스턴스를 만들 때 Autowired 를 사용하면 컨테이너 안의 정보를 인스턴스에 주입할 수 있다. 이해하기가 어려운데, 예제를 통해서 알아보자. Restaurant 라는 클래스 위에 @Component 를 붙여준다. 그러면 해당 클래스의 인스턴스가 자동 생성되어 스프링 컨테이너에 담아두게 된다. 자바에서 다형성이 있었는데, 의존성 주입도 같은 맥락이라고 할 수 있다. 객체의 역할과 구현을 분리하는데 목적이 있다. 레스토랑을 예시로 들어보자, 레스토랑에 쉐..

애노테이션 & 단위테스트 { 개요, lombok & Test Annotation, 연습문제 }

애노테이션은 자바에서 한 번 보았습니다. 애노테이션은 2가지의 기능을 갖습니다. 첫 번째는 컴파일러가 코드의 문법 오류를 확인합니다. 두 번째는 프로그램 실행 시 특정 기능을 수행하도록 합니다. 위 예제를 보겠습니다. Cat 클래스는 Animal 클래스를 상속했습니다. 부모에게 물려받은 메서드를 재정의 후 사용하려고 합니다. 재정의하는 것은 선언부는 동일하게 한 후 내용만 바꾸면 됩니다. 그런데, 이런 규칙을 무시하면 재정의가 아니라 새로운 함수를 만든 것이 되겠죠. 그래서 Annotation 을 활용하여 Override 라는 것을 명시하면 컴파일러가 해당 메서드는 재정의함수구나 이해하고 제약사항을 만들어서 우리의 실수를 줄여줍니다. 롬복 애노테이션은 아주 많이 사용합니다. 우리가 자바 개발을 할 때 생..

프로젝트 시작 & 생성하기 { clone, import }

예제 소스코드를 clone 했다. 이제 import 해야 할 차례이다. import 할 때 이제는 일반 자바 프로젝트가 아니기 때문에 gradle 프로젝트를 import 해야 한다. clone 받은 디렉터리를 root directory 로 지정해준 다음 Finish 를 눌러준다. 성공적으로 import 된 것을 확인할 수 있다. 일단 x 표시가 된 것을 볼 수 있는데, 에러가 발생한 것을 볼 수 있다. 우선 나의 경우 lombok 에서 에러가 발생한 것을 볼 수 있다. 우선 project 에서 build auto 를 해제시킨다. project - clean 을 해준다. 그 다음 project - Build all 을 해준다. 이렇게 하면 대부분 해결이 되는데, 이래도 해결이 안 되면 lombok 을 다시..