본문 바로가기

Dev.

(341)
[개발상식] 24. 각종 DevOps Tool - Jenkins / Travis CI / Docker / Ansible with YAML Continuous Integration Tool Jenkins란젠킨서버란 오픈 소스 CI(Continuous Integration) Tool 로 Java로 만들어졌다. CI란 팀 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미한다. 만약 github을 통해 협업 중이라면 각각의 version controller 에 각자 작업한 내용을 commit을 하게 되는데, 이렇게 commit된 소스코드들을 정기적으로 통합시켜주는 것을 도와준다. 지속적으로 코드의 퀄리티를 관리할 수 있으며, 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 그 목적이 있다. 현재 csv, svn, git 등의 소스 툴들을 지원하고 ant와 maven 등의 빌드 툴을 지원하며 배포 형태는 war 파일을 ..
[개발상식] 23. DevOps란 무엇이며, CI는 무엇인가? DevOps에 대해서,하나의 소프트웨어를 개발하기 위해서는 여러 명이 동시에 개발할 수 있는 환경도 필요하며, 수천명의 사용자를 상대로 내놓으려면 서버와 스토리지, 운영체제 등 뒷단에서 관리해줘야 하는 인프라 환경도 갖춰야 한다. 이러한 역할을 수행하는 것이 Ops의 역할이다. 개발자(Dev)는 고객에게 제공한 변경을 빠르게 보길 원하고 운영자(Ops)는 제공하는 서비스 또는 소프트웨어의 안정성에 더 관심을 두게 된다. 또한 개발자는 개발 생산성을 향상시킬 수 있는 새로운 프레임워크를 도입하고 싶어하지만 Ops는 안정성이 보장되지 않는다는 이유로 이를 꺼려한다. 서로 다른 목적을 갖고 다른 프로세스로 다른 도구를 사용하여 개발을 진행하는 것이다. 이런 차이점 때문에 Dev와 Ops간에 충돌이 발생한다. ..
[개발] 스프링 부트 코딩 공작소 / 크레이그 윌즈, 황인서 역 / 길벗출판사 스프링 부트 코딩 공작소스프링 부트 1.4.0 에 대한 이해를 위해 이 책을 구입했다. 스프링 부트에 대한 매력을 절실히 느낄 수 있는 책이다. 하지만 이 책은 당연히 Java를 알아야 하고, 스프링 프레임워크까지 이해를 하고 있는 상태에서 봐야 빛을 발한다. 그래야 어떠한 부분이 자동화가 이루어졌는지 확인할 수 있으며, 스프링 부트를 효과적으로 사용할 수 있을 것이다. 스프링 프레임워크가 훌륭한 프레임워크지만 빠른 개발 환경 구성을 위해 스프링 부트을 사용해도 전혀 손색이 없다. 스프링을 알고 있으면 스프링 부트에서 자동으로 설정해주는 구성 또는 개발 환경을 customize 할 수 있기 때문이다. 스프링 프레임워크에 대한 이해를 높인 다음 다시 한 번 제대로 스프링 부트를 사용해봐야 겠다. 이 책을 ..
프라이머 대표 권도균 님 강의 - 당신이 창업하기 전에 알아야 할 세 가지 - 스타트업 펀딩사이클 스타트업 초기에는 인간이 살아가기 위해 계속 밥을 먹는 것처럼 ‘자금'이 계속해서 필요하다. 하지만 눈에 보이는 매출은 없다. 당연히 Cash Flow는 바닥을 치고도 남아 저 아래로 흘러내려 간다. 최소 5년간은 가난하다. 이 5년을 startup death valley라고 하며, 5년이 지난 후에야 매출이 조금 오르면서, 적자가 사라진다. 창업은 장기전이다. 하지만 이것은 장기전이 됬을 때 비로소 장기전이라고 말할 수 있는 것이다. 정말 많은 스타트업들이 startup death valley 에 도달하지도 못하고 망한다. (어떤 창업가는 이 startup death valley 에만 도달하는 것이 목표라고 한다. ) 그래서 Acc..
#SLiPP Spring boot, JPA 강의 - 반복주기 4 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기 4학습 목표 쿠키와 세션에 대한 대략적인 이해 로그인 사용자에 대한 접근 제한 1. 로그인 기능 구현 2. 로그인 상태에 따른 메뉴 처리 및 로그아웃 3. 로그인 사용자에 한해 자신의 정보를 수정하도록 수정 4. 질문하기, 질문목록 기능 구현5. 중복 제거 및 리팩토링6. 원격 서버에 소스코드 배포 1. 로그인 기능 구현 로그인 기능은 페이지가 바뀌더라도 로그인 상태를 유지하는 것이 중요하다. 어떻게 상태를 유지할 것인가? 기본적으로 웹 애플리케이션인 상태를 저장하는 방법이 없다. 코드를 작성하기 전에 로그인을 구현하는 과정을 살펴보자. 로그인의 흐름은 대략 이렇다. 로그인하려는 아이디를 전달받으면 해..
[Spring boot] Spring-Boot에서 JDBC Driver 설정하고 사용하기 Spring boot + jdbc driver 로 데이터베이스 사용 환경 설정 1. application.properties 에 해당 코드를 추가한다.code>>12345spring.application.name=SpringBootJdbcspring.datasource.url=jdbc:mysql://localhost/dbproject?autoReconnect=true&useSSL=falsespring.datasource.username=rootspring.datasource.password=(****)spring.datasource.dirverClassName=com.mysql.jdbc.DriverColored by Color Scriptercs 해당하는 Database를 dbproject라는 자리에 적..
#SLiPP Spring boot, JPA 강의 - 반복주기 3 이 포스팅은 다음 강의를 바탕으로 작성되었습니다.>> SLiPP 자바 웹 애플리케이션 개발 >>반복주기3내용1. H2 데이터베이스 연동하기 2. 데이터베이스 조작하여 값 추가하기 3. HTML, URL Refactoring 4. 개인정보 수정 기능 구현하기 1. H2 데이터베이스를 사용하여 프로젝트에 데이터베이스 사용! H2 데이터베이스는 JAVA로 작성된 RDBMS이다. spring-boot jpa 를 이용한다. JPA에 대한 설명은 다음 포스팅을 참고하길 바란다. >> ORM에 대한 포스팅 >> H2 데이터베이스는 별도의 설치가 필요하지 않다. 데이터베이스 실습을 위해 mysql을 설치해본 사람이라면 데이터베이스를 별도의 설치과정 없이 사용할 수 있다는 장점이 얼마나 큰 것인지를 알 수 있을 것이다...
[Intro] 브라우저부터 서버까지 네트워크의 큰 흐름 브라우저부터 서버까지 네트워크의 큰 흐름브라우저 : “xxx라는 페이지의 데이터를 주십시오!" 웹 서버 : “예! 알겠습니다. 이것이 그 데이터입니다!"이 애플리케이션 내부의 대화를 실현하려면 브라우저와 웹 서버 간에 대화하는 요청(request)과 응답(reponse)을 상대측까지 운반하는 구조가 필요하다. 여기서 요청이나 응답은 0과 1로 이루어진 디지털 데이터이다. 이 구조는 통신 상대를 정확하게 식별한 뒤, 요청이나 응답을 넘길 수 있어야 하고, 넘기는 도중에 요청이나 응답이 삭제될 수 있는 사태도 고려해야 한다. 즉, 디지털 데이터를 반드시 상대에게 넘겨야하는, 운반해야 하는 구조인 것이다. 이 구조는 여러 기기가 역할을 분담하면서 실현된다. 디지털 데이터들은 이 구조 내부에서 작은 덩어리들로 ..