전체 글(17)
-
Head First 디자인 패턴 공부 - ( 옵저버 패턴 )
옵저버 패턴 옵저버 패턴은 한 객체의 상태가 변경이 되면 그 객체에 의존하고 있는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다( one to many ) 의존성을 가진다. 대부분의 옵저버 패턴이 위와 같은 형태를 가진다. 구독을 하는 옵저버들에게 새로 갱신되는 데이터를 전달해줄 주체가 되는 Subject 객체가 있고, Subject 객체는 새로 변경되는 내용이 생기면 해당 내용들을 옵저버들에게 전달해준다. 옵저버는 새로 추가될 수도 있고, 옵저버 상태에서 벗어날 수 있다. 더 이상 옵저버가 아닌 상태의 객체는 Subject의 변경사항을 제공받지 못한다. 가수의 앨범 발매 소식이 필요해! 가수의 회사에서는 최근 작업 앨범과 발매 예정일, 작업 상태를 가지고 있다. 이 정보가 변경될..
2019.09.12 -
Head First 디자인 패턴 공부 - ( 스트래티지 패턴 )
경험을 공부하다. 코딩을 하다보면 더 깔끔하고 잘 짜여진 코드를 짜고 싶다는 욕심이 생긴다. 잘하는 개발자가 되고 싶다는 생각은 가지고 있지만 이제 막 시작하는 입장에서 생각처럼 잘 짜여진 코드를 만들기가 쉽지가 않다. 그래서 디자인 패턴을 공부를 시작하려고 한다. 이미 나보다 더 뛰어나고 앞서간 개발자들이 이미 똑같은 문제를 경험 했고 자신들의 경험과 교훈을 토대로 문제를 해결해 나가는 방법을 만들어 줬다. 이제 그 경험을 공부해서 ( 호로록~! ) 상황에 맞는 유연한 코드를 작성할 수 있는 능력을 길러보자. 디자인 원칙 "애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리 시킨다." 코딩을 하면서 유지보수를 위해 앞으로 수정되어 바뀔 가능성이 있는 부분이 있다면 바뀌지 않는 부..
2019.09.12 -
깃허브 오픈소스를 활용하여 네이버 뉴스기사 크롤링하기
네이버 기사 프로젝트를 Fork 해서 작업 전부터 네이버 기사를 크롤링해서 데이터베이스에 저장하는 웹 크롤러를 만들어야겠다 생각하고 미루다가 이번에 만들어 보았습니다. 네이버 Open API에 뉴스 검색 api도 있지만 앞으로 개발을 계속해서 하면서 github를 사용할 일이 많아질 거 같아서 github를 많이 이용해보려고 github에 있는 원하는 기능과 유사한 네이버 뉴스&댓글 크롤링 프로젝트가 있어서 해당 소스코드로 작업했습니다. 아직 다른 사람의 프로젝트에 바로 push 할 능력이 안되기 때문에 저장소를 제 저장소로 fork 해서 작업했습니다. api를 활용하거나 파이썬 scrapy를 활용하면 더 빠르고 간편하게 작업할 수 있을 거 같다. 참고자료) https://github.com/lovit/..
2019.09.06 -
JPA를 공부해야 하는 이유
JPA를 공부해야하는 이유 JPQL이란? JSQL의 다양한 방법 JPQL JPA를 공부해야하는 이유 전 세계 개발자들이 MyBatis와 Hibernate 중 어떤 것을 더 많이 사용하는지에 대한 통계자료입니다. 동아시아권을 제외하면 대부분의 나라들이 압도적으로 JPA 방식의 Hibernate를 더 선호하고 사용한다는 걸 알 수 있습니다. 물론 그렇다고 무조건적으로 Mybatis보다 Hibernate가 더 좋은 방법이다 생각하고 사용해서는 안 됩니다. Hibernate의 경우 통계자료나 복잡한 쿼리의 경우 JDBC를 직접적으로 사용하는 Mybatis에 비해서 매우 많이 불편하다는 단점이 있습니다. 결국은 Hibernate와 Mybatis를 적절히 혼용하여 각각의 이점을 활용하여 사용하는 게 중요합니다. 사..
2019.09.04 -
AWS EC2와 RDS로 웹 서버 구축 및 이클립스 Spring 프로젝트 배포 - (2)
EC2와 RDS를 성공적으로 생성하였다면 이제 해당 서버에 프로젝트를 빌드해야 합니다. EC2 ubuntu에 ssh 접속 저는 xshell6이 깔려 있어서 xshell로 진행했습니다. putty가 깔려 있으신 분은 putty를 사용하고, 맥 유저 분들은 터미널을 이용해서 ssh 접속하시면 됩니다. EC2 서버 IP 주소 22(ssh)포트로 접속합니다. 로그인 계정 ubuntu & public key로 이전에 다운로드했던 pem 파일을 선택해 줍니다. 성공적으로 접속하였다면 해당 화면이 나오면서 리눅스 쉘로 변경 됩니다. apt 패키지 툴을 업데이트&업그레이드 해줍니다. jdk를 설치해 줍니다. ( 이후 java --version 명령어 실행시 성공적으로 설치 되었는지 확인 ) 톰캣 설치 /var/lib/..
2019.08.12 -
AWS EC2와 RDS로 웹 서버 구축 및 이클립스 Spring 프로젝트 배포 - (1)
AWS는 아마존에서 제공하는 클라우드 서비스입니다. 무려 165개가 넘는 기능의 서비스를 제공해준다고 합니다... 공부 목적으로 해보는 것이기 때문에 AWS 프리티어를 이용하여 구축해 보았습니다. AWS 프리티어? 60가지 정도의 제품을 체험할 수 있는 요금?? 정책인 것 같습니다. 처음 가입 후 12개월 동안만 무료라고 하네요. 대신 용량의 제한이 있습니다. EC2는 월별 750시간 무료이며, 데이터베이스 용량 최대 25GB 사용시간은 월별 750시간만 무료라고 합니다. 750시간이면 한 달은 충분하지만 데이터베이스를 여러 개 만들거나 웹 서버를 여러 개 돌리게 되면 요금폭탄을 맞을 수도 있습니다. AWS EC2 웹 서버 구축을 위해서 유닉스, 리눅스, 윈도 등등 과 같은 OS들을 지원해 줍니다. AW..
2019.08.12