목록전체 글 (50)
개발자의 서재
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter.06 : AWS 서버 환경을 만들어보자 - AWS EC2 클라우드 서비스 : 클라우드(인터넷)을 통해 서버, 스토리지(파일저장소), 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것. AWS EC2 는 단순히 서버 장비를 대여하는 것 뿐만 아니라, 로그관리, 모니터링, 하드웨어 교체, 네트워크 관리등을 기본적으로 제공함. 클라우드의 형태 1. IaaS (Infrastructure as a Service) - 기존 물리장비를 미들웨어와 함께 묶어둔 추상화 서..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 05-2. 스프링 시큐리티와 OAuth 2.0 으로 로그인 구현하기 5.6 어노테이션 기반으로 개선하기 개선이 필요한 코드에는 어떤것들이 있을까? 대표적으로 같은코드의 반복이다. 현재는 IndexController.java 에 세션에서 유저정보를 가져오는 아래 코드가 반복적으로 사용된다. SessionUser user = (SessionUser) httpSession.getAttribute("user"); 위 부분을 메소드 인자값으로 세션을 받을 수 있도록 개선 하겠다. * LoginU..
* DFS 개념 DFS는 그래프형태의 자료구조를 모두 방문하는 방법중 하나이다. * DFS (Depth first search) 알고리즘 참고 : https://coding-factory.tistory.com/611 [Algorithm] DFS 알고리즘 (Depth First Search) 깊이 우선탐색 (DFS)란? DFS는 그래프 전체를 탐색하는 방법중 하나로써 시작점 부터 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하고 넘어가는 방법입니다. 스택이나 재귀함수를 통해 coding-factory.tistory.com 그래프형태의 자료구조를 코드로 표현하는 방법에는 인접리스트 형태, 인접행렬 형태가 있다. 인접리스트 형태는 자신과 연결된 노드의 "번호"를 나열한 형태의 2차원 배열이고, 인접행렬..
springboot, gradle 프로젝트를 만드는중, class파일들이 들어있는 build/ 폴더와 out/ 폴더가 원치않게 github에 올라갔다. .gitignore 파일에 build/ out/ 폴더를 각각 추가해줬지만 계속해서 commit 시 대상에 포함되어 있었다. [해결법] 먼저 기존에 커밋 해야 하는 것들은 다 커밋해놓고 cmd 콘솔창을 열고 .gitignore 파일이 있는 경로로 이동 (인텔리제이에서는 하단에 terminal 탭을 선택하면 자동적으로 해당경로로 설정되어있음) 아래 명령어 차례대로 입력 git rm -r --cached . git add . git commit -m ".girignore cached removed" 명령어 입력 후 커밋을 해보면 모든 커밋 대상이 사라져있다. ..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 05. 스프링 시큐리티와 OAuth 2.0 으로 로그인 구현하기 스프링시큐리티는 막강한 인증과 인가 기능을 가진 프레임워크 입니다. 스프링 시큐리티와 OAuth 2.0 을 구현한 구글 로그인을 연동하여 로그인 기능을 만들어보겠습니다. 5.1 스프링시큐리티와 OAuth2 클라이언트 많은 서비스에서 로그인기능을 id/pw 보다는 구글,페이스북,네이버같은 소셜 로그인을 사용합니다. 직접 로그인 기능 만드는 것 보다 OAuth 로그인 을 구현하면 로그인관련 기능을 구글,페이스북,네이버에 맡기면..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 04. 머스테치(mustache)로 화면구성하기 4.1 서버템플릿 엔진과 머스테치 소개 템플릿엔진 : 지정된 템플릿 양식과 데이터가 합쳐서 html문서를 출력하는 소프트웨어 ex) jsp, Thymeleaf (서버템플릿엔진) 리액트, 뷰 (클라이언트 템플릿엔진) 서버템플릿엔진을 이용한 화면 생성은 서버에서 java코드로 문자열을 만든 뒤 html로 변환하여 브라우저로 전달함. 반면, 자바스크립트는 브라우저위에서 작동함. vue나 react를 이용한 SPA는 브라우저에서 화면을 생성함. ..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 03. 스프링 부트에서 JPA로 데이터베이스를 다뤄보자 3.1 JPA소개 ORACLE, MYSQL 등 관계형데이터베이스 필수요소이고 웹서비스의 중심이 SQL중심이됨. SQL은 객체지향 프로그래밍과 맞지않는 부분이 있음. 기존 관계형 데이터베이스방식은 객체모델링보다는 테이블모델링에 집중하게되고 객체를 단순히 테이블형식에 맞추어 데이터 전달역할만 하는 기형적인 형태임. JPA(자바 표준 ORM)는 SQL에 종속적인 개발을 하지않도록 할 수 있게하여, 객체지향 프로그래밍을 추구하게 해줌. J..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 02. 스프링 부트에서 테스트 코드를 작성하자 2.1 테스트코드 소개 TDD : 테스트가 주도하는 개발 RED - 항상 실패하는 테스트 작성 GREEN - 테스트가 통과하는 프로덕션 코드를 작성 REFECTOR - 테스트가 통과하면 프로덕션 코드를 리팩토링 단위테스트는 TDD 의 첫번째 단계인 기능단위의 테스트코드를 작성하는것을 말함. 단위테스트의 장점 (위키디피아) 단위테스트는 개발초기에 문제를 발견하도록 도와줌 단위테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 ..
* 인텔리제이 단축키 파일명 수정 단축키:shift + F6 git 커밋 : ctrl +K git 푸시 : ctrl + shift + K 수정내역원복 : 파일 우클릭 git > rollback 액션검색 : ctrl + shift + a (파일명, 액션등..) 세팅 : ctrl + alt + S 파일검색 : ctrl + shift + N 코드검색 : ctrl + shift + F 최근수정파일 : ctrl+ shift + E * 인텔리제이 콘솔창 한글깨짐 1. 세팅 > encoding 검색 > general > console > default encoding > utf-8 로 수정 2. File encodings 에도 3군데 utf-8로 수정 3. 통합검색 > edit custom VM Option > 열리..
"스프링부트와 AWS로 혼자 구현하는 웹 서비스" 라는 책을 바탕으로 학습목적의 프로젝트를 진행하고 있습니다. 소스 : https://github.com/ironmask431/springboot_aws_01 Chapter 01. 인텔리제이로 스프링부트 시작하기 1.1 인텔리제이 소개 1.인텔리제이의 장점 강력한 추천기능 훨씬 더 다양한 리팩토링과 디버깅기능 이클립스의 git 에 비해 훨씬 높은 자유도 프로젝트 시작할 때 인덱싱을 하여 파일을 비롯한 자원들에 대한 빠른 검색속도 1.2 인텔리제이 설치하기 1.젯브레인 툴박스 다운로드 / 설치 / 인텔리제이 커뮤니티(무료) 설치 1.3 인텔리제이 커뮤니티에서 프로젝트 생성하기 1.gradle + java 프로젝트 생성 gradle 이란 기본적으로 빌드도구이다..