안녕하세요 강정호입니다. 오늘은 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() { // 오스트레일리아 울룰루 ..
안녕하세요 강정호입니다.오늘은 제가 위치기반 푸드트럭 서비스 프로젝트에 참여했을 때 위치 기반 검색 기능을 어떻게 구현하였는지에 대해 알려드리겠습니다. Github 주소 : https://github.com/wwwkang8/wheelwego_ver3.git 위치 기반 푸드트럭 서비스 개요 기존 문제점소비자 푸드트럭 사업주 위치 기반 검색 1단계 : 사용자의 위도, 경도 값 찾기사용자의 위치를 중심으로 푸드트럭을 검색하는 것이기 때문에 사용자의 위도, 경도 값을 알아야 합니다. HTML5의 navigator.geolocation 함수를 사용하여 위도, 경도 값을 받은 후 Controller로 전송하여 Session에 저장합니다. 사용자의 위치 찾기: 어플리케이션 구동 시 자동으로 스크립트 파일이 실행되어 ..
안녕하세요 강정호입니다.올해 7~8월까지 Cloudwatch API를 사용한 서버 모니터링 시스템을 개발하는 프로젝트를 진행했습니다. 제가 개발한 서버 API 코드에 대해 설명 드릴게요. 서버 모니터링 시스템 개요 기존 AWS Cloudwatch 시스템의 문제점 및 개선방안 Cloudwatch API 연동 1단계 : 인증된 사용자 객체 생성하기1234567891011121314151617public AmazonCloudWatchClient createAmazonCloudWatchClient(String key1, String key2, String endPoint) { /*API CALL을 요청할 사용자 객체 정보입력*/ setKey1(this.key1); //Key1은 Cloudwatch 접속에 필요한..
안녕하세요 강정호입니다.오늘은 JPA N:M 관계 즉 다대다 관계에 대해서 공부해 볼게요. N:M 관계Table 측면Member와 Role은 N:M 관계이다. 테이블을 생성할 때는 다대다 관계를 이루면 안되기 때문에 두 테이블 사이에 복합키(member_id, member_role_id)를 가지는 테이블을 만들어 1대다 관계를 만들어 준다. Member 테이블//@ManyToMany(cascade = {CascadeType.ALL}) //우리가 사용하는 Role정보는 이미 DB에 저장되어 있다. @ManyToMany @JoinTable(name="member_member_role", joinColumns = @JoinColumn(name="member_id", referencedColumnName = "..
안녕하세요 강정호입니다.패스트 캠퍼스 스프링 부트 강의 4번째 수업에 대한 강의 내용을 적어보겠습니다. 오늘 학습 주제Spring Security를 이용.- 회원정보 (id, password)- Role에 대한 정보. - 어떤 회원이 관리자 권한, 일반 권한을 가지는 것 회원 ---------> Role관계? 1명의 회원은 여러 Role을 가질 수 있다1개의 Role은 여러 회원을 가질 수 있다.--> 즉 다대다 관계이다. 다대다 관계에서는 Join table을 사용한다. 회원가입로그인로그아웃 @ManyToMany@JoinTable : 다대다 관계에서 조인 관계를 맺을 때 복합키를 가지는 테이블이 필요하다.ex) @JoinTable(name="member_member_role") Board가 카테고리 관..
안녕하세요 강정호입니다. 오늘은 영속성 컨텍스트에 대해 공부해 볼게요.JPA를 이해하기 위해서는 영속성 컨텍스트와 엔티티 매니저에 대한 이해가 필수입니다. 영속성 컨텍스트란?- Server side와 Database 사이에 엔티티를 저장하는 논리적인 영역이라고 할 수 있다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. - 영속성 컨텍스트는 엔티티 매니저(Session)를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저(Session)을 통해서 영속성 컨텍스트에 접근할 수 있고 영속성 컨텍스트를 관리할 수 있다. 영속성 컨텍스트가 왜 좋은가?1차 캐시- Map 객체로 저장 : 엔티티를 식별자 값(@Id 맵핑)으로 구분한다. Key-value로..
안녕하세요 강정호입니다. 오늘을 스프링 부트에서 엔티티를 맵핑하는 방법과 테스트 코드 작성에 대해 알아볼게요. 이렇게 Category와 Board는 다음과 같이 1:N 관계를 맺고 있습니다. 1개의 카테고리는 여러개의 게시물을 갖는 것이지요. 그렇다면 엔티티는 다음과 같이 생성됩니다. Board 엔티티@Entity @Table(name = "board") @Getter @Setter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String title; private String content; private int readCount..
안녕하세요 강정호입니다. 오늘은 JPA에 대해 공부 해볼게요. JPA를 사용하는 이유?SQL 중심적인 개발에서 객체 중심으로 개발생산성과 유지보수성패러다임의 불일치 해결객체 지향성과 SQL의 불일치.성능 : 이것은 확실하지 않다. 1차 캐시와 관련된 것이다.데이터 접근 추상화와 벤더 독립성JPA를 사용하게 되면 SQL이 자동으로 각 DBMS(MySQL, Oracle)에 맞게 생성되어 독립적으로 된다. 영속성 컨텍스트(Persistence Context)- Entity를 영구 저장하는 환경 - 논리적인 개념에 가깝다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 그리고 엔티티 매니저는 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다.- 엔티티 매니저 : 영속적 환경을..
1. Spring Boot datasource 설정 검색 spring.datasource.initialization-mode= always어플리케이션이 시작될 때 직접 데이터 초기화 하는 것. import.sql 커넥션풀보다 요청량이 많으면 클라이언트들이 대기해야 한다. 커넥션 JPA를 사용하는 이유- 패러다임의 불일치 해결 : 객체지향과 SQL의 불일치- 성능 : 이건 확실하지 않다.- 데이터 접근 추상화와 벤더 독립성 : JPA를 사용하면 SQL이 각 DBMS(MySQL, Oracle)에 따라 만들어져서 독립적이다. 영속성 컨텍스트 트랜잭션- PlatformTransactionManager가 트랜잭션을 관리해 주는 역할을 한다.- 최초에 SELECT을 할 때는 엔티티 매니저가 SQL문을 만들어서 DB..
안녕하세요 강정호입니다. 오늘은 Spring의 트랜잭션에 대해 공부해 볼게요. 트랜잭션이란?트랜잭션은 여러 작업이 구성되어 있는 하나의 작업 단위입니다. 예를 들어서 쉽게 설명 해볼게요.출금을 하려면 여러가지 일들이 같이 순차적으로 이루어져야 해요.1) 계좌 잔액 조회2) 출금하려는 금액과 계좌 잔액 비교3) 출금4) 로깅이렇게 4가지 작업이 모두 수행되어야 합니다. 이 4가지 작업을 합한 것이 하나의 트랜잭션 단위가 되는 것입니다. 트랜잭션의 특징은 4가지의 작업 중 1개만 에러가 발생할 경우 바로 원상 복구를 해야합니다. 그것을 rollback 이라고 합니다. 4가지 작업이 모두 정상적으로 이루어졌다면 commit을 합니다. 즉, 트랜잭션 관리는 이러한 작업들의 성공여부에 따라 원상 복구 또는 적용하..
오픈소스 중간고사 시험범위 오픈 소스 기여자 3명오픈소스 라이센스 비교 테이블 문제AWS를 사용할 때의 장점특징 : 말을 고쳐서 함정을 만들었다. 아리까리한 것은 답이 아닐 가능성이 높다고 교수님이 언급하셨다.성당과 시장 방식의 차이점성당과 시장은 오픈소스 운동의 시작이다.오픈 소스를 적용하기 강점이 있는 분야성당과 시장 책에서 언급된 "전략적 무기"라는 것이 무엇인가?오픈 소스의 금기 - 오픈 소스에서 하면 안되는 것 책에서 찾아보기깃이 만들어진 목적, 이유깃의 구성요소 : 박스, 동그라미, 삼각형 나오는 객체 저장소 그림 그대로 나온다깃의 Init, add, commit, push, pull 등의 과정들이 있는데, 이것들을 작성하는 문제깃 명령어별로 차이점 : Merge, fetch, pull, pu..
안녕하세요 강정호입니다. 오늘은 객체지향적 분석 설계에서 "레이어를 사용한 논리적 아키텍쳐"에 대해서 공부해볼게요 소프트웨어 아키텍쳐란?성능, 수정 가능성 및 보안 등과 같은 시스템 품질의 중요 요소아키텍쳐는 소프트웨어 시스템을 구성하는 중요한 결정들의 모음 또는 구성요소이다.시스템을 구성하고 있는 구조요소와 그것들의 인터페이스 논리적 아키텍쳐란?논리적 구조는 소프트웨어 클래스를 패키지, 서브 시스템 및 레이어(정적보기)로 대규모 조직화 한 것이러한 요소가 서로 다른 물리적 플랫폼 간에 배포되는 방법에 대한 결정이 없기 때문에 논리적 아키텍쳐라고 한다. 레이어 아키텍쳐란?시스템의 주요 관점에서 응집력 있는 responsibility를 갖는 클래스, 패키지 및 서브시스템을 큰 크기로 묶어 놓은 것. 계층은..
- Total
- Today
- Yesterday
- pop_back
- 폭포수
- 열반스쿨기초반
- 항해솔직후기
- Spring boot
- 항해플러스후기
- 내년은 빡세게!!
- 관계대수
- 깃
- 2023년
- github
- 파라메터
- 월급쟁이부자들
- 깃허브
- 부동산공부
- 항해플러스백엔드
- resize
- 유즈케이스
- 월부닷컴
- push_back
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 재테크공부
- Use case
- front
- 도커
- 인셉션
- docker
- Inception
- GIT
- 개발자 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |