루비온 레일즈 라우팅, 컨트롤러, View 페이지 설정 포스팅하기
안녕하세요 강정호입니다. 오늘은 레일즈 프로젝트를 시작하는 방법에 대해 설명드리겠습니다. 레일즈 프로젝트가 시작이 안되서 2일동안 삽질을 하였네요 ㅠㅠ 아까운 내 2일... 다시는 이런 실수를 하지 않기 위해 다음과 같이 기록합니다. RubyMine IDE를 사용하여 설명하겠습니다. 1단계 : Ruby API 프로젝트를 생성합니다. 위와 같은 설정으로 Rails API를 생성합니다. 2단계 : Gemfile 파일을 확인한다. Gemfile 파일을 확인해서 gem 라이브러리가 mysql로 설정되어 있는지 확인합니다. 제가 에러가 난 이유가 이 부분이 sqlite3로 되어 있어서 에러가 발생했습니다. 3단계 : database.yml 설정 변경하기로컬 컴퓨터에 있는 mysql의 root계정, 비밀번호, 데이..
sample_hash={'a'=> 1, 'b'=>2, 'c'=>3}my_details={:name=>'mashrur', :favcolor=>'red'}my_details['favcolor']sample_hash['a'] my_hash={a:2} another_hash={a:1, b:2, c:3} another_hash[:a] #Hash의 키만 가져온다.sample_hash.keys sample_hash.each do |key, value| puts "The class for key is #{key.class} and the value is #{value.class}"end sample_hash.each do |key, value| puts "The class for key is #{key.class} a..
if condition end if condition else end if condition elsif else end def multiploy(first, second) first.to_f * second.to_fend def divide(first, second) first.to_f / second.to_fend def mod(first, second) first.to_i % second.to_iend puts "Where do you want to do? 1) multiply 2) divide 3) subtract 4) find remainder"prompt = gets.chompputs "enter in your first number"first_number=gets.chompputs "Enter..
puts "Simple calculator"25.times {print "-"}puts "Enter the first Number"num_1=gets.chompputs "Enter the second Number"#gets.chomp는 String으로 받아온다.num_2=gets.chompputs "The first number multipled by the second number is #{num_1.to_i * num_2.to_i}" puts "나누기 : The first number division by the second number is #{num_1.to_i / num_2.to_i}" puts "더하기 : The first number plus by the second number is #{n..
안녕하세요 강정호입니다. 오늘은 루비에 대해서 공부 해보겠습니다. String concatenation# String concatenationsentence = "My name is jake"p sentence first_name = "Jake"last_name = "hello"puts first_name+" "+last_name Java와 마찬가지로 "+" 기호를 이용해서 단어와 단어를 연결할 수 있다. String interpolationfirst_name = "Jake"last_name = "hello" #String interpolationputs "My first name is haja and #{first_name} my last name is #{last_name}" String을 "+" 기..
안녕하세요 강정호입니다. 오늘은 책임 있는 객체 디자인에 대해서 공부 해보겠습니다. GRASP의 약자G : GeneralR : ResponsibilityA : AssignmentS : SoftwareP : Principles Object DesignWhat are inputs to Object DesignProcess Inputs2일간의 요구사항 분석 워크샵 20개 중에서 3개의 유즈케이스프로그래밍 경험다음 Elaboration iteration을 위한 계획large-scale과 논리적인 설계Artifacts to Object design유즈케이스 텍스트시스템 시퀀스 다이어그램오퍼레이션 컨트랙트 Object Design을 위한 활동은 무엇이 있는가?- 디자인 모델에서의 특정 유즈케이스가 어떻게 구현되는지..
안녕하세요 강정호입니다. 오늘은 엘라스틱 서치를 사용하여 서울 지하철 대쉬보드를 만들어보겠습니다. 동영상 가이드 : https://www.youtube.com/watch?v=xPjNtd8xUZo 1-1 단계 : ElasticSearch 설치하기 ElasticSearch를 설치한 이후 설정파일에서 메모리 사이즈를 늘려줍니다.$ cd elasticsearch 2.4.1/bin elasticsearch.in.sh 파일에서 다음과 같이 추가합니다.(동영상 : 7분 54초) Plugin 설치위와 같이 엘라스틱 서치 플러그인을 설치해야 아래와 같은 화면이 나타나게됩니다. 1-2 단계 : Kibana 설치하기(동영상 : 9분 5초)영상보다는 강의노트를 기준으로 Kibana 설치하는 것을 추천드립니다. 1-3 단계 :..
안녕하세요 강정호입니다. 오늘은 트랜잭션에 대해서 공부해 보겠습니다. 트랜잭션이란?트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션의 특징1. 트랜잭션은 데이터베이스 시스템에서 병행제어 및 회복 작업 시 처리되는 논리적 단위이다.2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다.3. 하나의 트랜잭션은 Commit되거나 Rollback 된다. 병행처리의 문제점다수의 사용자가 데이터베이스에 요청을 보내게 되면 이러한 요청들을 처리할 방법이 필요하다. 만약 하나의 요청을 끝내고 다른 요청을 수행하는 방식이라면 처리시간이 매우 오..
안녕하세요 강정호입니다. 오늘은 제가 푸드트럭 서비스의 게시판을 제작할 때 페이징 처리를 어떻게 하였는지에 대해서 다루어보겠습니다. 페이징 처리페이징 처리는 게시물이 많을 때 한 페이지에 보여지는 게시물의 수를 정하고 나머지는 페이지 번호로 처리하는 것을 말합니다. 페이징 처리에 있어서 핵심적인 정보 2가지가 있습니다.1) 한 페이지에 보여줄 게시물의 갯수2) 총 게시물의 갯수 그럼 본격적으로 페이징 처리 코드를 살펴보겠습니다. PagingBean 코드package org.asechs.wheelwego.model.vo; /** * 페이징 처리를 위한 비즈니스 계층의 클래스 PagingBean method 구현순서 getStartRowNumber() * getEndRowNumber() getTotalPag..
안녕하세요 강정호입니다. 오늘은 제가 인하우스키친 프로젝트를 배포 자동화 구축한 방법에 대해서 소개해 드리고자 합니다. CI란 무엇인가?배포 자동화를 하기 전에는 직접 ./deploy.sh에 Git pull 명령어, Jar 파일 이름, Gradle 빌드 명령어 실행 코드, 배포 명령어를 직접 입력한 후에 deploy.sh를 실행하여 프로젝트를 배포하였는데요, 직접 일일이 Master 브랜치에 푸쉬하고 Deploy를 해주어야 해서 번거로웠어요. CI(지속적 통합)는 코드 버전 관리를 하는 VCS(깃헙, SVN)에 PUSH가 되면 자동으로 Test, Build가 수행되고 Build 결과를 운영 서버에 배포까지 자동으로 진행되는 과정을 뜻해요. 마틴 파울러가 제시하는 CI의 조건은 다음과 같아요1) 모든 소스..
안녕하세요 강정호입니다. 오늘은 제가 배포를 하다가 생긴 빌드 오류에 대해서 알아보겠습니다. 문제EC2에서 빌드를 하여 배포를 하려고 하는데 계속해서 Test 관련 에러가 발생하였습니다. 누군가가 코드를 변경한 이력은 없고 계속해서 찾아보았으나 원인을 알기 어려웠습니다. 위의 스샷과 같이 "Execution failed for task : test" 라는 메시지와 함께 InhouseKitchenApplicationTests 파일에서 에러의 원인이 발생했다는 힌트를 주고 있었습니다. 그래서 에러 메시지에서 나타난바와 같이 InhouseKitchen/build/reports/tests/test/index.html 파일을 열어보기 위해 로컬에서도 동일하게 Gradle 빌드를 해보았습니다. 로컬에서 빌드로컬에서..
안녕하세요 강정호입니다. 오늘은 위치기반 푸드트럭 서비스에서 게시판의 이미지를 어떻게 업로드 하였는지에 대해 알아보겠습니다. 1단계 : 글쓰기 버튼 클릭빨간색 안의 글쓰기 버튼을 클릭하게 되면 이벤트가 발생하여 Controller를 통해서 글쓰기 폼으로 이동시켜줍니다. 1234567 $(document).ready(function(){ $("#writeBtn").click(function(){ location.href="${pageContext.request.contextPath}/afterLogin_board/freeboard_write_form.do"; })//click })//readyColored by Color Scriptercs 위와 같이 writeBtn 아이디를 가진 버튼을 클릭하면 Cont..
안녕하세요 강정호입니다. 오늘은 소프트웨어 공학에서 말하는 Pattern에 대해 공부해 볼게요 What are patterns?1. 원칙과 솔루션이 구조화된 형식으로 문제를 해결할 수 있는 방법 2. 새로운 컨텍스트에서 적용할 수 있는 명명된 문제/ 솔루션의 페어. 3. 새로운 상황에 적용할 수 있는 방법 디자인 패턴을 사용하는 이유는 간단하다.객체지향적 코드를 재사용하기 위해서 좋은 패턴의 특징1. 문제를 해결해 준다. 2. 증명된 컨셉이다. 3. 해결책이 분명하지 않다. 4. 관계에 대해서 묘사한다. 5. 패턴은 중요한 인간적인 컴포넌트를 가진다. 패턴의 타입1. Architectural Patterns: 소프트웨어 시스템의 근본적인 구조를 표현한다 2. Design Patterns: 소프트웨어의 서..
안녕하세요 강정호입니다. 오늘은 UML에 대해서 공부해 볼게요 객체를 설계하는 동안 생각해야 할 것(UML Object를 그리면서)1. Object의 책임은 무엇인가? - 어떤 책임을 Object에게 할당해야 하는가를 생각해야 한다. 2. 이 Object와 협력하는 것은 무엇인가?- 해당 Object와 관계를 맺고 있는 다른 Object들은 무엇이 있는가? 3. 어떤 디자인 패턴을 적용해야 하는가? UML 블록을 구성하는 3가지 요소1. Things 객체2. Relationship 관계3. Diagrame 다이어그램 UML이 가져야 하는 것들1. Structural things : 구조적인 것들이 필요하다.2. Behavioral things : 어떤 행동에 대해서 표현해야 함.3. Grouping th..
안녕하세요 강정호입니다. 오늘은 Google Map API에서 위치 자동완성 기능에 대해 알아볼게요 위치 자동완성은 Place Autocomplete이라고합니다. Place Autocomplete 공식문서 Autocomplete search All Establishments Addresses Geocodes Strict Bounds Autocomplete search All Establishments Addresses Geocodes Strict Bounds 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374..
안녕하세요 강정호입니다. 오늘은 Hibernate에서 LAZY 로딩으로 인한 JSON Serialization 오류에 대해 알아보겠습니다. 상황1. 메인 페이지에서 검색창에서 "Search" 버튼을 클릭하게 되면 HostList 페이지로 넘어간다. 2. HostList 페이지로 넘어가면서 Ajax 통신으로 getHostList() 메서드를 호출하여 모든 호스트 리스트를 JSON 형식으로 받아온다. 3. 하지만 JSON으로 받아오는 과정에서 Serialization이 안되는 문제가 발생. 에러 로그1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636..
안녕하세요 강정호입니다. 오늘은 색인에 대해 공부해 볼게요. 색인색인은 파일에 있는 레코드를 찾아주는 보조적인 파일이다. 색인은 순서구조의 색인과 해싱 구조의 색인으로 구분된다. 순서 색인 : 색인 필드와 주소 값으로 구성된 엔트리들의 모임. 해싱 색인 : 키 값에 의하여 레코드의 위치를 직접 찾아주는 기법.정적 색인 : 기본적인 색인 기법을 다단계로 이용하여 ISAM(Indexed Sequential Access Method) 라는 색인 순차 파일이 데이터베이스 초기에 널리 보급됨.동적 색인 : B-Tree는 자료의 추가와 삭제에 따라서 색인 구조가 증대하고 수축하는 동적인 색인이다. 색인의 형태색인은 크게 3가지 형태가 있다. 기본 키로 구성된 기본 색인(Primary Index), 기본색인이 있는 ..
안녕하세요 오늘은 데이터베이스의 파일과 색인에 대해 공부 해보겠습니다. 파일, 색인, 해싱의 관계데이터베이스를 구축하는 목적은 자료를 저장하고 필요할 때 검색하는 것이다.파일데이터베이스의 자료를 파일 형태로 저장한다.색인저장된 자료를 찾기 위하여 색인을 사용한다.색인은 자료 검색을 도와주는 보조 파일이다.해싱자료를 신속하게 찾아주는 알고리즘 저장장치저장 장치는 2가지로 나누어 진다. 1. 주 기억장치 : 전자회로로 구성된 전자장치이므로 자료 처리 속도가 빠르며, 중앙연산 처리장치(CPU)에서 1차적으로 접근하기 때문에 Primary storage라고 한다.하지만 가격이 높기 때문에 용량을 크게 확장하기 어려워 보조 기억장치와 같이 쓴다. 그리고 전원이 꺼지면 기억된 정보가 소실된다. 2. 보조 저장장치 ..
안녕하세요 강정호입니다. 오늘은 Ajax로 받아온 값을 전역변수에 저장하는 방법에 대해 알아보겠습니다. Ajax로 받은 데이터 전역변수에 저장하기Ajax를 사용하다보면 Success로 받아온 결과값을 전역변수에 담을 일이 비일비재 합니다. Ajax 기본 사용법으로 success 부분에 전역변수의 값을 바꾸려고 하면 적용이 되지 않습니다. 전역변수에 값을 저장하기 위해서는 딱 한줄!!만 추가해주면 가능합니다. Ajax는 비동기 방식입니다. async 값을 주지 않으면 기본값으로 true가 셋팅이 되어 비동기 방식의 ajax가 수행됩니다. 사용자의 위도, 경도 값을 전역변수에 저장하기 위해서는 다음과 같이 async 값을 주어야 합니다. 12345678910 $.ajax({ type:"get", url:"/..
$./get.sh 1 $./get.sh 100 $./get.sh 101안녕하세요 강정호입니다. 오늘은 Elastic Search의 인덱스 생성 및 기본적인 명령어들을 공부해 볼게요. Index 생성1. 인덱스 생성$ curl -XPUT 'localhost:9200/customer?v&pretty' : PUT 명령어를 이용해서 customer 라는 인덱스를 생성합니다. 이 때 출력 방식은 v&pretty 방식으로 하여 보기 좋게(이쁘게) 출력하는 옵션입니다. 2. 생성한 인덱스 체크하기$ curl -XGET 'localhost:9200/_cat/indices?v&pretty' : GET 명령어를 사용합니다. _cat은 실행 함수로서 indices(인덱스 목록)를 v&pretty 방식으로 출력합니다. 데이터..
안녕하세요 강정호입니다. 오늘은 Elastic Search를 시작하기 위해 환경설정하는 것을 알아보겠습니다. 엘라스틱 서치 시작하기1. AWS EC2에서 리눅스 인스턴스를 생성합니다. 2. 원격 리눅스 서버에 접속하기- 원격 서버에 접속하는 방법은 많지만 저는 윈도우 환경에서 리눅스 환경의 커맨드를 활용할 수 있는 Xshell 프로그램을 사용하였습니다. 3. Java 1.8 설치 및 버전 변환- $ java -version : 자바 버전 확인 - $ sudo yum install java-1.8.0-openjdk-devel.x86_64 : 자바 1.8 버전 설치 - $ sudo /usr/sbin/alternatives --config java : 사용하려고 하는 자바 버전을 선택할 수 있다. - $ su..
안녕하세요 오늘은 엘라스틱 서치에 대해 공부해볼게요 Insert Data : XPOST- $ vi insert.shcurl -XPOST 'localhost:9200/customer' 입력한 데이터를 수정하기$cp put1$./update1.sh curl 엘라스틱 서치 PUT, POST 방식의 차이 (시험문제) 시험문제: 인덱스, 타입, 아이디를 주고 이것을 어떻게 삭제 혹은 업데이트 하는지 구문을 작성할 수 있게 Search & Sort
안녕하세요 강정호입니다. 오늘은 데이터베이스의 인덱스에 대해 공부해 볼게요. 인덱스란 무엇인가??정의 : DB 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료구조.(참고링크) 인덱스를 사용하면 전체 데이터를 검색하지 않고 데이터베이스에서 원하는 정보를 빠르게 검색할 수 있다. 예를 들어, 테이블에는 수백만의 고객 정보가 저장되어 있고 고객명, 고객번호, 주민번호 등을 이용해 데이터를 검색하고자 할 때 인덱스가 없다면 찾고자 하는 대상이 한 명이더라도 수백만의 고객 데이터 전체를 읽어야 한다. 인덱스의 가장 중요한 기능은 접근 경로를 단축함으로써 데이터의 탐색 속도를 높이는것!! 접근 경로로서의 인덱스- Single-level 인덱스는 데이터 레코드를 찾는 효과적인 보조물이다. - 1개의 인덱스 ..
안녕하세요 강정호입니다. 오늘 패스트캠퍼스에서 배우는 6번째 수업에 대해 포스팅 할게요 1교시- 프로그래밍이 무엇인가? 1) 요구사항을 아키텍쳐에 기반하여 구현하는 것2) 아키텍쳐의 중요성 : 프로그래머가 곧 아키텍트이다. 3) 알고리즘 문제 푸는 것은 어떤 아키텍쳐를 생각해서 구현하는 것과는 다르다알고리즘이 논리적인 사고 방식을 표현하는 것에는 적합하다. - 참조 아키텍쳐 : 비슷한 도메인으로 구현한 것에서 아키텍쳐를 모방해 온다.1) 우리한테 맞는 부분을 가져오고, 그렇지 않은 부분을 제외한다. - 개발 사이클을 짧게 잡자!1) 회원가입, 로그인을 2주동안 만들고 고객에게 보여주자.2) 고객이 보고, "이건 아닌데?" 하면서 피드백을 받는다.3) 나머지 2주 동안 다른 기능을 개발한다.4) 피드백을 ..
Jar 파일 만드는 방법- Intellij 우측에 Maven project 클릭.- Life Cycle에서 Package 클릭 --> 빌드- target 폴더의 jar 파일 생성- java -jar jar 이름을 실행. 커스터마이징 스타터 제작하기- starter 프로젝트- Stickershop 프로젝트 실행하기- import maven 프로젝트- Maven project - lifecylce : test는 실행 스킵하게 설정- life cycle package 더블클릭 : 자동으로 Q 클래스 빌드한다 아스키 아트 추가하기- http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20- resource 폴더 아래 banner.t..
안녕하세요 강정호입니다.제가 인하우스키친 이라는 프로젝트를 진행하고 있는데요.구글 지도 위에 마커를 표시하는 방법에 대해 포스팅 하려고 합니다. 구글 지도 위에 마커 표시하기먼저 간단한 튜토리얼 예제부터 해보겠습니다. [구글 지도위에 마커 1개 표시하기] 12345678910111213141516171819202122232425262728293031323334353637 /* 지도를 포함하는 div 영역의 크기를 설정하는 css코드 */ #map { height: 400px; /* 높이는 400 픽셀 */ width: 100%; /* 너비는 웹 페이지의 너비 */ } 나의 구글 지도 튜토리얼 // 구글 지도를 초기화 하고 마커를 추가한다. function initMap() { // 오스트레일리아 울룰루 ..
- Total
- Today
- Yesterday
- Inception
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 월급쟁이부자들
- docker
- 열반스쿨기초반
- push_back
- 재테크공부
- 부동산공부
- 인셉션
- 개발자 회고
- Spring boot
- 항해솔직후기
- front
- 2023년
- 폭포수
- 깃허브
- 도커
- 항해플러스후기
- GIT
- pop_back
- Use case
- github
- resize
- 깃
- 관계대수
- 월부닷컴
- 파라메터
- 유즈케이스
- 항해플러스백엔드
- 내년은 빡세게!!
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |