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. 보조 저장장치 ..
- Total
- Today
- Yesterday
- resize
- 관계대수
- 내년은 빡세게!!
- 부동산공부
- push_back
- 깃허브
- 폭포수
- 월부닷컴
- 항해솔직후기
- 개발자 회고
- 유즈케이스
- Inception
- 깃
- pop_back
- Spring boot
- 재테크공부
- github
- 도커
- GIT
- 항해플러스후기
- 항해플러스백엔드
- 파라메터
- front
- 월급쟁이부자들
- 인셉션
- Use case
- 열반스쿨기초반
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 2023년
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |