본문 바로가기

분류 전체보기

(80)
[공부의 흔적]_브라우저 한글깨짐 공부하다가 localhost:8080을 쳐서 화면을 확인하려고 했는데 한글 대신 ?로 나와서 해결방법을 정리해보려고 한다. 1. 인코딩 확인 File > Settings > 왼쪽 탭에서 Editor > File Encodings빨간 박스로 된 것들은 모두 UTF-8로 되어 있어야 하고, 맨 아래는 체크가 되어 있어야 함. 1-1. 우측 하단 확인. UTF-8로 설정을 잘 했다면, 우측 아래 확인했을 때 나오는 것을 확인할 수 있음. 2. Edit Custom VM Options.. Help > EditCuston VM Options.. 아래 코드 입력하기.-Dfile.encoding=UTF-8-Dconsole.encoding=UTF-8 3. application.properties 수정 나는 아래 코드를..
[스프링부트와 AWS로 혼자 구현하는 웹 서비스]_3. (2) JPA 테스트 코드 및 API 작성 앞서 작성한 코드를 간단하게 테스트 코드로 기능을 검증을 해 볼 것임. 1. Spring Data JPA 테스트 코드 작성 test 디렉터리 안에 domain 패키지 아래 posts 패키지 생성하고, PostsRepositoryTest 클래스 생성.java / com / jojoldu / book / springboot / domain / posts / PostsRepositoryTest 생성.PostsRepositoryTest에서는 다음과 같이 save, findAll 기능을 테스트할 것임. 별다른 설정 없이 @SpringBootTests를 사용할 경우 H2 데이터베이스를 자동으로 실행해줌.이 테스트 역시 실행할 경우 H2가 자동으로 실행됨.테스트 코드 실행해 보기package com.jojoldu.b..
[스프링부트와 AWS로 혼자 구현하는 웹 서비스]_3. (1) JPA와 데이터베이스 웹 서비스와 데이터베이스를 다루는 일은 개발하고 운영할 때 피할 수 없는 문제임. 웹 서비스를 개발하며 데이터베이스를 사용하는 방법에는,MyBatis와 같은 SQL 매퍼 사용하기, 다른 하나는 ORM을 이용하여 객체 매핑하기가 있음. MyBatis도 많이 사용되고 있는 서비스지만, 개발을 하는 시간보다 SQL을 다루는 시간이 더 많음.JPA(Java Persistence API)라는 자바 표준 ORM(Object Relational Mapping)을 이용하여 객체를 매핑하는 방법이 존재함.(MyBatis, iBatis는 ORM이 아님. SQL Mapper임.) 1. JPA 웹 애플리케이션에서 관계형 데이터베이스(RDB, Relational Database)는 빠질 수 없는 요소임.Oracle, MySQL..
[스프링부트와 AWS로 혼자 구현하는 웹 서비스]_2. (2) 테스트코드와 롬복 1. 롬복이란 자바 개발할 때 자주 사용하는 코드 Getter, Setter, 기본생성자, toString 등을 어노테이션으로 자동 생성해 줌. build.gradle에 dependencies 부분에다가 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'입력하기.새로 등록했으므로, Reload로 새로고침에서 라이브러리(의존성이라고도 함) 내려받기.plugins { id 'java' id 'eclipse' id 'org.springframework.boot' version '3.2.5' id 'io.spring.dependency-management' version '1.1.4'}group = 'com...
[스프링부트와 AWS로 혼자 구현하는 웹 서비스]_2. (1) 테스트 코드 많은 회사에서 채용할 때 테스트 코드 작성이 있는 경험을 우대함.그만큼 테스트 코드는 절대 빠질 수 없는 요소가 됨. 1. 테스트 코드란 TDD(Test Driven Development)와 단위 테스트(Unit Test)는 다른 것. TDD는 테스트가 주도하는 개발을 말함.1. 항상 실패하는 테스트를 먼저 작성(Red),2. 테스트가 통과하는 프로덕션 코드를 작성(Green),3. 테스트가 통과하면 프로덕션 코드를 리팩토링(Refactor). 반면, 단위테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미.TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않으며, 순수하게 테스트 코드만 작성하는 것을 이야기함. 테스트 코드에 대해 먼저 접한..
[스프링부트와 AWS로 혼자 구현하는 웹 서비스]_1. 스프링부트 프로젝트로 변경 intelliJ를 먼저 설치하고 시작. https://start.spring.io/ 에서Project : Gradle - GroovyLanguage : JavaGroupId : com.jojoldu.bookArtifactId : freelec-springboot2-webservicePackaging : JarJava : 17입력 후 GENERATE(생성).폴더에서 압축 풀고(원하는 장소에 압축 풀기) intelliJ에서 열고 시작. build.gradlebuildscript { ext { springBootVersion = '2.1.9.RELEASE' } repositories { mavenCentral() jcenter() } depend..
[IntelliJ]_깃과 연동하기 매번 IntelliJ 프로젝트를 새로 생성해서 깃을 연동하는데 까먹어서 블로그에 올려볼 겸 정리, 일단, 깃과 연동하기 위해서는 깃허브에 회원가입이 되어있어야 한다. https://github.com/ GitHub · Build and ship software on a single, collaborative platformJoin the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.github.com ● Repository 생성 회원가입..
[공부의 흔적]_Cookies와 Session 프로젝트를 진행하면서 장바구니 구현할 때 어떤 방식으로 구현해야 할까 찾아보다가 정리해봄.장바구니 구현 시 세션, 쿠키, DB 방식 등이 있음.그 중 쿠키와 세션에 대해 찾아봄. 쿠키와 세션 설명에 앞서, HTTP 프로토콜 특징에 대해 이해해야 함 HTTP Protocol 특징 - 비연결 지향 (Connectionless) : HTTP는 기본적으로 클라이언트가 서버에 요청 보내면, 서버는 해당 요청에 대한 응답을 클라이언트에게 전달하고 연결 끊음. - 상태 정보 유지하지 않음 (Stateless) - HTTP 통신은 상태 저장하지 않으므로 이전의 데이터 요청과 그 후의 데이터 요청은 전혀 관련 없음. - 사용자 인증, 쇼핑 카트 등 기능 구현 시 어려움 있음. HTTP Protoco..