전체 42

chatapp lombok, Annotation

21.09.14 집 앞 카페에서 고양이들과 함께 공부중입니다. 오늘은 springboot의 lombok의 개념과 장점에 대해 정리해보겠습니다. 슬슬 토익 점수도 준비해야 해서 영어 공부에 힘을 주고 있습니다. 850점 넘겼으면 좋겠습니다. 하하 1. LOMBOK 기본적으로 웹 어플리케이션에서 사용하는 vo객체는, db table의 colume과 같은 이름의 private 변수를 가지고 getter setter 메소드를 정의한 후 toString 메소드를 정의해 사용합니다. 하지만 프로젝트가 커지면 커질수록 위에서 말한 변수와 메소드들이 점점 늘어나게 되어 관리와 유지보수에 부담이됩니다. 이러한 문제를 해결하기 위해 사용하는 라이브러리가 바로 lombok입니다. 사용하기 위해서는 spring boot에 라..

chatapp 시작

21.09.11 유튜브 '데어 프로그래밍' 님의 springboot 5.0을 이용한 chatapp 만들기를 따라 포스팅을 진행할 것입니다. (https://www.youtube.com/channel/UCVrhnbfe78ODeQglXtT1Elw) 데어 프로그래밍 getinthere@naver.com www.youtube.com 채팅 서버는 한번도 만들어 본 적이 없기 때문에 따라 만들면서 어떤 구조로 만들어지는지 배우겠습니다. 그리고 boot를 처음 써보는데 설정 단계가 너무 간편하고 좋습니다. (첫 spring 설정에 몇시간 들였던 기억이..) Framework는 위에서 설명했듯 springboot 5.0을 사용 할 것이며 DB는 MongoDB 사용할 예정입니다. 기대됩니다. 너무 재밌을거 같습니다. 얼..

ku나라 Goorm ide, 역할분담

21.09.11 어제 회의를 통해 정확한 역할분담 및 프로젝트 진행에 사용할 툴을 정했습니다. 저는 back단에 집중하기로 했습니다. 1. GOORM IDE 원래는 VSCODE에 SFTP 서버를 깔아 같이 코드를 공유하며 협업하기로 했지만 찾아보니 더 좋은 툴이 있는것 같아 바꿨습니다. GOORM IDE란 웹 기반 클라우드 프로그래밍 도구입니다. 네트워크만 연결되어 있다면 접속만으로 별다른 설정업이 다양한 언어로 프로그래밍을 할 수 있습니다. 팀원들과 손쉽게 동시 프로그래밍이 가능하도록 해줍니다. 정말 편리합니다. 앞으로 회의 전에 서로의 코드를 공유 할 수 있게 되어 훨씬 효율적으로 프로젝트를 진행 할 수 있을 것 같습니다. 2. 문제 해결 ku나라-01에서 다뤘던 경로지정 문제를 협업 툴인 GOORM..

ku나라 시작

21.09.07 9월 5일 SQLD시험을 마치고 여유가 생겼습니다. (SQLD 결과는 10월1일에 나옵니다. 생각보다 쉬워서 실수만 없었다면 붙은 것 같습니다.) 이제 교내 공모전에 집중할 때입니다. 저를 포함한 팀원 셋이서 매주 금요일 오후 7시 반에 화상회의를 하고 있습니다. 저번주 회의에선 주제를 좀 더 명확히 하고 전체적인 컨셉과 웹 사이트의 색 테마를 정했습니다. (초록색 계열로 갈 예정.) 팀원 두분이 프론트를 맡고 제가 백을 맡기로 했습니다. 하지만 저도 프론트 작업하는 것을 좋아해 같이 할 생각입니다. 팀 활동을 하면서 어떤 문제가 생기고 그 문제를 어떻게 해결해야할지 생각하면서 프로젝트를 진행할 것입니다.

spring ApplicationContext, @primary, @qualifier

21.08.26 개강 준비 + 21.09.05 에 있을 sqld 시험 준비 때문에 포스팅을 잠깐 쉬었습니다. 앞으로는 Spring 5 recipe의 내용을 차례로 정리해볼 생각입니다. 상당히 두꺼운 책이므로 헷갈렸던 부분 및 아예 모르던 기능 위주로 찾아가며 정리하겠습니다. 1. ApplicationContext 먼저 스프링 컨테이너(IOC container)의 종류는 bean factory와 applicationContext가 있습니다. applicationContext는 spring에서 핵심적인 인터페이스라고 생각합니다. beanFactory를 상속 받으며 다양한 기능을 합니다. (둘의 차이점은 Bean 객체가 생성되는 시점에 차이가 있습니다.) 아무튼 applicationContext는 빈의 생성,..

Spring 2021.08.27

Docker, hub(Registry), Image, Container, Pull, Run, Port forwarding

1. Docker란 docker는 어플리케이션을 빠르게 만들고, 테스트하고, 배포할 수 있게해주는 소프트웨어 플랫폼입니다. 일단 소프트웨어를 컨테이너라는 표준화된 개념으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등등 실행하는 데 필요한 모든 것이 포함되어 있습니다. 즉 docker를 사용하면 환경에 구애받지 않고 어플리케이션을 사용할 수 있게 해줍니다. 2. Docker hub(Registry), Image, Container, Pull, Run 우리는 보통 app store에서 program을 다운 받습니다. program을 실행하면 process가 생성되는데 Docker hub, Image, Container 이 세가지를 (차례로) 위와 비슷하게 비유할 수 있습니다. -..

Docker 2021.08.19

spring 프로젝트 진행 중 오류 1

21.08.16 1. 문제1 발생 1. DB에서 regdate는 datetime으로 선언한 칼럼이었습니다. 2. spring에서 객체로 값을 받아와 view단에 el태그를 사용해 뿌려줬습니다. ( ${list.regdate} ), 그러나 값이 제대로 넘어오지 않았는지 계속해서 공백이 떴습니다. 3. 오류 메세지가 뜨지 않고 공백만 뜨는 것을 보아 뭔가 datatype의 문제가 아닐까 생각하고 해결하는 시간을 가졌습니다. 2. 문제1 해결 1. DB에서 datetime으로 선언한 것은 옳았습니다. 게시글의 날짜와 시분초까지 알기 위해선 datetime, 또는 timestamp를 써야하기 때문입니다. 여기선 문제가 없었습니다. 2. 문제는 java코드에서 발생했습니다. ListVO 라는 class에 값을 받..

Spring 2021.08.16

Spring EL, 내장객체, 표현법

21.08.13 9월 5일에 SQLD 시험을 보기로 했습니다. 신청을 오늘 했기 때문에 약 3주 정도 남았습니다. 크게 어려운 자격증이 아니라는 후기들을 많이 봐서 부담없이 일단 신청했습니다. 1. EL이란 EL은 expression language의 약자로 데이터를 표현하기 위한 약자입니다. el로 인해 자바코드를 사용해야 했던 모든 곳에 el을 사용해 편리해졌습니다. el의 장점은 값이 없는 변수(null)에 좀 더 관대하다는 점과 데이터 형 변환을 자동으로 해준다는 점 입니다. 이러한 특징들은 특희 문자열을 처리하는데 주요하게 작용합니다. el 구문은 ${} 안에 넣어 사용합니다. el을 사용하면 에 객체를 꺼내는 코드를 작성하거나 을 사용할 필요가 없어 훨씬 간결하게 작성할 수 있습니다. 후에 반..

Spring 2021.08.13

Spring Model, Model 객체

21.08.11 학교 개강 준비 때문에 며칠간 글을 못 썼습니다. 오늘은 model 객체에 대해 정리해보겠습니다. 1. Spring Model 객체란 스프링에서 controller의 메서드는 보통 model이라는 타입의 객체를 파라미터로 받을 수 있습니다. 순수하게 jsp servlet으로 웹 어플리케이션을 만들 때 보통 request나 session 객체에 정보를 담아 view단에 넘겨줍니다만 spring에선 이런 작업을 할때 model 객체를 쓸 뿐입니다. jsp, servlet으로 웹을 만들 땐, request.setAttribute니 dispatcher니 forward니 이것 저것 많이 붙여줘야 됐었습니다. 그러나 spring으로 만들땐 model.addAttribute("이름", 값); 으로 매..

Spring 2021.08.11

session, Session의 동작 순서, Session 사용 코드

2021.08.07 공모전 제출용 프로젝트 진행 중입니다. 로그인 기능 구현을 해봤는데 session을 통해 로그인 정보를 저장하게 했습니다. 1. Session이란 Session이란 클라이언트와 웹서버 간의 네트워크 통신이 이루어질때 클라이언트가 누구인지 식별할때 사용합니다. 클라이언트가 서버로 요청을 할 때 서버는 session id를 판단하여 사용자가 누구인지 판단합니다. session의 장점을 설명하겠습니다. session이 유지되면 클라이언트를 계속해서 구분 할 수 있습니다. 즉, 각 클라이언트에게 고유 ID를 부여합니다. 사용자 정보는 클라이언트 쪽이 아닌 서버 쪽에 두어서 보안적인 면에서 쿠키보다 우수합니다. 세션 만료의 시간을 두어 서버에서 설정한 시간만큼 미동작시 세션을 만료시키는 방법을..

Spring 2021.08.07