목록개발 (19)
leelee.log
김원일, 서종호의 저서 [따라하며 배우는 AWS 네트워크 입문]을 요약한다. 이 포스트에서는 1장 AWS 인프라, 2장 VPC 기초를 다룬다. Index 1장 AWS 인프라 2장 VPC 기초 1장 AWS 인프라 01. AWS 소개 1.1 클라우드 란? 인터넷을 통해 원하는 만큼의 IT 리소스를 손쉽게 사용할 수 있는 서비스를 뜻한다. AWS, Azure, GCP 등 이다. 클라우드 서비스 종류 IaaS 사업자: 서버, 네트워크, 스토리지 등 자원을 제공 사용자: 가상 서버에 필요한 프로그램을 설치하여 사용 및 운영 예시: E2C, VPC, EBS PasS 사업자: IaaS + Runtime + Middleware 제공 → 앱을 개발하기 위한 build, test, deploy 플랫폼과 환경을 제공 사용자..
2020-09-18에 작성된 How to deal with SQL exception in Spring boot 를 옮겨왔습니다. [Backend] (en) How to deal with SQL exception in Spring boot Handles SQL Exception in Spring boot: Checked exception, unchecked exception, leeleelee3264.github.io Handles SQL Exception in Spring boot: Checked exception, unchecked exception, Index Exception in Java Handle SQL Exception Reference Exception in Java A week ago, ..
웹 페이지를 만들다보면 Resource 를 사용할 일이 정말 많아진다. 여기서 주로 사용하는 Resource는 HTML, Javascript, Css, png 등이 있다. 이 Resource를 또 동적인 리소스 (dynamic resource)와 정적인 리소스 (static Resource)로 구분을 할 수 있는데 내가 이해한 바로는 동적인 리소스는 runtime에 변화가 있는 리소스이고, 정적인 리소스는 변화가 없는 리소스이다. 예를 들어 이미지와 javascript, css와 같은 파일들은 서버에 저장되어 있을 때도, 클라이언트에게 줄 때도 변화가 없다. 그래서 변화가 없는 정적인 리소스가 된다. 이제 HTML을 한 번 생각해보자. HTML은 틀이고, HTML을 채우는 알맹이는 db에서 가져온 정보이..
intellij로 spring boot 프로젝트를 만들면 꼭 같이 만들어지는 파일이 하나 있다. 바로 application.properties라는 파일인데 처음에는 db의 url과 아이디/비밀번호를 써서 db 연결에만 사용하고 있었지만 요즘은 프로젝트에서 사용되는 전역적인 정보들을 기록해둬서 @Value 어노테이션으로 값을 빼와 코드에 사용하고는 한다. 여기서의 전역적인 정보들은 보통 1. 사용하는 api key 2. port와 context-path 3. 파일이 업로드 될 주소 가 등 이 있다. profile 과 properties의 차이를 처음에는 헷갈려 했는데 강의를 다 듣고 나니 properties는 key-value 쌍의 정보고, 그 properties가 모여있는 하나의 파일을 profile이라..
Scope라는 단어를 처음 봤을 때는 javascript에서 함수를 배우고 있었다. 사전에서 Scope라는 뜻을 찾아보면 '범위'라고 나온다. 오늘 다루는 주제는 Bean의 Scope, 즉 범위이다. Bean은 일반 자바 객체와는 조금 다른 형태의 스코프를 가지고 있다. Bean을 스프링에서 사용하는 자바 객체라고 말을 하고는 했었는데 특별한 설정을 하지 않았을 때 Bean은 singleton 형태로 만들어진다. spring을 동작 시킬 때 딱 한 번 객체가 만들어지고 계속 사용한다는 뜻이다. Spring에서 annotation을 사용하지 않는 일반 자바 객체들은 사용을 할 때 마다 생성자로 만드는 prototype 형태로 만들어지는데 알고보니 Bean또한 prototype 형태로 만들 수 있었다. 즉,..
이건 진짜 나 보라고 만든 포스팅이기 때문에 좀 정신이 없어도 수정을 하지 않았다. 앞으로 하면서 계속 참고한 사이트가 있으면 추가할 예정. 이렇게 모아두면 나중에 다시 보기 편리하다. 가장 기본적으로 참고한 사이트 https://rorlab.gitbooks.io/railsguidebook/content/appendices/ubuntu16server.html 우분투 16.04 서버 세팅하기 (Virtual Box) · 초레가2 http://releases.ubuntu.com/16.04/를 방문하여 우분투 서버 버전(16.04.1 LTS (Xenial Xerus))을 다운로드 받는다. rorlab.gitbooks.io git bash로 ssh 접속이 안 되어서 참고한 사이트 https://askubuntu..
리눅스를 꼭 쓰기 위해 공부를 해야 하는 커맨드에는 grep과 awk, sed가 있다. 공부를 해서 내용을 채우자.
@Configuration에 @Bean으로 빈을 등록했는데 동일한 return 타입을 가지고 있거나, @Autowired를 해야되는 상황에 복수의 class에 implements 되어있는 interface를 사용했을 경우 Spring에서는 여러가지 선택지 중에서 어떤걸 bean으로 만들어야 하는지 몰라서 오류를 만들어낸다. 이런 상황이 많지는 않겠지만 @Primary와 @qualifier를 통해서 해결을 할 수 있다. 그런데 명심해야할 점은 어지간하면 bean을 중복으로 만들지 않는게 제일 좋은 해결책이라는 사실이다. 문제가 발생할 수 있는 상황 1 @Configuration 파일에 return value가 똑같은 Bean이 선언되어있다. Spring의 입장에서는 만들면 다 똑같은 Bean이라서 이러면 ..
Spring에서 프로젝트를 구동하기 위해서 제일 처음으로 실행되는 class는 @SpringBootApplication이라는 어노테이션이 붙어있는 class이다. 여기서 모든 것이 시작 되었다고 말 할 수 있다. 그럼 @SpringBootApplication에 뭐가 들어있을까? 점점 공부를 하면서 드는 생각이지만 Spring에서 제일 중요한 개념은 Bean이 아닐까 싶다. @SpringBootApplication이 중요한 이유는 @ComponentScan이라는 어노테이션을 품고 있기 때문이다. @ComponentScan은 Spring에게 어디서부터 어디까지의 @Component 어노테이션이 붙은 class들을 읽어들여 bean을 만들어야 하는지를 알려준다. 여기서 중요한 사실은 기본적으로 세팅이 되는 범..
저번에 IoC에 접근하는 방법으로 BeanFactory와 ApplicationContext가 있었다고 언급을 했었다. (ApplicationContext가 BeanFactory를 상속받는다). 개발을 하면서 직접 쓸 일은 아직 없는데 강의를 들을 때 계속 나와서 따로 기록을 해둔다. ApplicationContext로 IoC에 접근하고, getBean()으로 Ioc에 있는 Bean을 가지고 와서 출력해준다. 지금은 저게 IoC에 있는 bean인지 없는지 정도로만 사용하는데 더 뭔가 사용할 방법이 있지 않을까... 했는데 공식 문서를 보니 이름이나, 아이디, 부모 빼오는거 빼고는 특별한 점이 없다. https://docs.spring.io/spring-framework/docs/current/javadoc..