개발은 재밌어야 한다
article thumbnail
스프링 (Spring Vue) 게시판 만들기 #4. SQLyog 사용과 DB 테이블 생성
Spring/게시판 만들기 2021. 4. 13. 22:30

이번에는 DB를 좀 더 쉽게 다루기 위해서 SQLyog를 다운받고 DB테이블을 생성해보도록 하겠습니다. sqlyog.softonic.kr/download SQLyog 그래픽 인터페이스를 사용하여 MySQL 데이터베이스 관리 용이성 sqlyog.softonic.kr 링크를 통해 SQLyog를 다운받습니다. 설치가 완료되면 이전 포스팅에 설치했던 MariaDB를 연결합니다. 연결 테스트가 성공되면 연결을 통해 접속을 합니다. 로컬호스트에 우측클릭을 하여 데이터베이스를 생성합니다. 생성후에 게시판 테이블과 회원정보 테이블을 생성해 주도록 합니다. 게시판 테이블 DDL CREATE TABLE BOARD( BNO INT NOT NULL AUTO_INCREMENT,-- 게시판 고유 번호 (자동증가) TITLE VA..

article thumbnail
Vue.js 컴포넌트 (심화)
javascript/Vue 2021. 4. 13. 16:56

단일 컴포넌트 # 전역수준 컴포넌트 문제점 컴포넌트 관리가 어렵고 재사용성이 낮아진다. 빌드 단계가 없으므로 ES2015, TypeScript와 같은 최신 버전 자바스크립트 문법을 사용할 수 없다. (ES 2015 전 문법 작성만 가능) CSS를 지원하지 않는다. 컴포넌트들은 고유한 스타일 정보를 포함하는 경우가 많으나, 전역 컴포넌트에서는 CSS 스타일을 빌드하고 모듈화하는 기능을 제공하지 않는다. css를 방식이 아니라 모듈 처럼 참조(import)할 수 없다. → 모듈 처럼 사용할 경우 빌드 거치면 자체적으로 link 태그를 만든다. 컴포넌트들의 템플릿이 작성될 때, HTML 파일 안에 여러 개의 태그가 작성되어 식별하기 어렵다. 또한 템플릿마다 고유한 ID를 부여하고 컴포넌트들도 고유한 이름을 지..

article thumbnail
스프링 (Spring Vue) 게시판 만들기 #3. Mybatis 와 MariaDB 연동(feat. Lombok)
Spring/게시판 만들기 2021. 4. 11. 21:57

스프링으로 게시판을 만들어보는 포스팅을 작성해보려고 합니다. 최종적인으로 완성 형태는 Vue, Spring, MariaDB을 사용한 형태로 완성하려고 합니다. 일단 이전 포스팅에서 작성한 프로젝트를 기반으로 사용합니다. Lombok을 사용하여 Java 개발시에 자주 사용되는 getter/setter, toString(), 생성자등을 변수를 선언한 것만으로도 자동으로 생성해줘서 코드를 줄이는데 유용합니다. Lombok 다운로드는 http://prprojectlombok.org/에서 jar 파일 형태로 다운 받을수 있습니다. 받은 lombok.jar를 실행킵니다. Quit Installer 눌러서 설치를 해주세요 이제 pom.xml에 lombok의 라이브러리를 추가해주고 Log4j 라이브러리는 1.2.15로..

article thumbnail
[JAVA 자바] instanceof 사용하여 객체 비교하기
JAVA 2021. 4. 9. 14:57

자바에서 데이터의 객체 타입이 뭔지 비교가 필요하여 해당 객체가 어떤 객체인지 파악할 때가 있어서 사용을 해봤습니다. 예시는 객체 데이터의 값이 어떤 객체인지를 확인하기 위한 예제입니다. // 키 값이 String, 값이 Object인 dataMap이 있다고 가정합니다. Map dataMap = new HashMap(); // dataMap에 첫번째는 String, 두번째는 Boolean 세번째는 Int 값을 넣습니다. dataMap.put("first", "StringValue"); dataMap.put("second", true); dataMap.put("third", 3); // for 문으로 각각의 키값 반복문을 통하여 값에 따른 객체의 형태를 알아봅시다. for (String key : data..

article thumbnail
스프링 (Spring Vue) 게시판 만들기 #2. 프로젝트 설정 및 한글 인코딩
Spring/게시판 만들기 2021. 4. 8. 23:47

지난번 프로젝트를 실행하면 Hello world와 현재 시각이 나오는데 한글부분이 깨져서 ?로 나오는 것을 확인할 수 있습니다. 이 부분을 UTF-8로 변환하여 한글로 나오게 처리합니다. 프로젝트를 선택한 후 Project > Properties로 들어갑니다. Resource > Text file Encoding에서 Other을 클릭하여 UTF-8로 바꿔준 후 Apply and Close하여 적용합니다. Window > Preferences로 들어가서 General > Workspace에 들어가서 똑같이 UTF-8로 설정해줍니다. 그 후 프로젝트를 클릭해서 src > main > webapp > WEB-INF > web.xml에 들어가가서 source를 클릭합니다. 그럼 다음과 같은 서블릿 관련 xml파..

article thumbnail
[JAVA 자바] HashMap에서 키-값 (Key-value) 가져 오기
JAVA 2021. 4. 7. 16:56

주로 스프링에서 RESTAPI의 결과값으로 받아올 때에 MAP형태나 리스트맵형태로 반환을 사용하기 때문에 Map에 대한 이해가 필요할 때가 많다. HashMap에 대한 사용을 위해 키들과 값을 가져오는 방법에 대해 알아보자 다음과 같은 HashMap을 선언하였습니다 Map classMap = new HashMap(); HashMap은 {key - value}의 형태로 쌍의 데이터로 저장되는 구조를 갖고 있는 객체이다. 값은 중복될 수 있지만 키 값은 중복이 되지않아 이미 존재하는 key 값에 동일한 key를 put하게 되면 기존의 데이터는 새로 put한 값으로 대체가 된다. 선언한 classMap에 키와 값들을 아래와 같이 세팅해준다. classMap.put("철수", 1); classMap.put("영..

article thumbnail
REST API란?
Spring/Spring 2021. 4. 6. 16:29

REST API란? Representational State Transfer API라는 용어의 약자이다. REST란 "자원을 URI(Uniform Resource Identifier)로 표시하고 해당 자원의 상태(정보)를 HTTP를 이용하여 자원을 주고 받는 것"을 의미한다. 따라서 Restfult API는 REST 특징을 지키면서 API를 제공하는 것을 의미한다. Q) URI 과 URL의 차이점은? URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미합니다. 자원의 위치라는 것은 결국 어떤 파일의 위치를 의미합니다. 반면에 URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성으로, URI는 URL을 포함하게 됩니다...

article thumbnail
SOLID 원칙 1 - SRP: 단일 책임 원칙 (Single Responsibility Principle)

객체 지향 프로그래밍 및 설계에서 5가지 기본원칙(SRP, OCP, LSP, ISP, DIP)의 앞글자를 따서 SOLID 원칙이라고 합니다. '원칙이란 무엇일까?' 원칙을 이렇게 정의합니다 "많은 경우에 적용되는 기본적인 규칙이나 법칙." SOLID 원칙은 객체 지향 프로그래밍 및 설계에서 많은 경우에 적용되는 규칙이나 법칙입니다. '그럼 SOLID를 적용하는 이유는 뭘까?' 시스템에 예상하지 못한 변경사항이 발생하더라도, 유연하게 대처하고 이후에 확장성이 있는 시스템 구조를 설계하기 위해서입니다. 간단하게 말해서 '유지보수성과 확장성'을 위해서이다. SOILD는 객체 지향 프로그래밍에서 변경사항이 있을때 자기 클래스안에 응집도는 높이고, 다른 클래스 사이의 결합도는 낮추는 High Cohesion - ..

article thumbnail
Call by value vs Call by Reference
JAVA 2021. 3. 23. 18:24

이번에는 간단하면서도 중요한 개념인 CallCall by value와 Call by Reference에 대해서 알아보려고한다. 전공시간에 교수님이 매우 중요한 개념이라고 말씀하셨는데 면접때도 질문으로 나왔었던.... 우선 Call by value와 Call by Reference는 일단 함수의 호출 방식을 의미한다. Call by value(값에 의한 호출) - 함수에 매개 변수의 내용물을 전달하여 복사해서 사용하는 방식 Call by reference(참조에 의한 호출) - 함수에 매개 변수의 참조 주소를 참조해서 호출하는 방식 의미 자체로만 본다면 함수의 호출을 값에 의해서 하는가 아니면 참조에 의해서 하는가라는 차이를 알 수 있다. 참조와 값에 따른 호출에 대한 좋은 그림예시가 있다 Call by ..

article thumbnail
Vue.js 컴포넌트 (기본)
javascript/Vue 2021. 3. 20. 19:50

컴포넌트란? 컴포넌트 그 자체로 제 기능을 하며 재사용할 수 있는 컴포넌트로 구성된 대규모 응용 프로그램을 구축할 수 있게 해주는 추상적 개념이다. 기본 HTML Element를 확장하여 재사용 가능한 코드를 캡슐화할 수 있게 해준다. 컴포넌트는 Vue의 컴파일러에 의해 동작이 추가된 사용자 지정 Element이다. 경우에 따라 is 속성으로 확장된 원시 HTML Element로 나타낼 수 있다. 거의 모든 유형의 응용 프로그램 인터페이스를 컴포넌트 트리로 추상화할 수 있다. Vue에서 컴포넌트는 미리 정의된 옵션을 가진 Vue인스턴스이다. Vue 컴포넌트는 Vue 인스턴스이기하므로, 모든 옵션 객체를 사용할 수 있다. (루트에만 사용하는 옵션은 제외) Vue 인스턴스와 같은 라이프사이클 훅을 사용할 수..

article thumbnail
프로세스와 스레드의 차이
CS 2021. 3. 18. 13:41

프로세스와 스레드에 대한 정의 프로세스: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 스레드: 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위 이 두 정의에서 나오는 단어인 프로그램에 대한 정의를 내려보면 다음과 같다 프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다. 프로그램은 살아있지 않은 상태. 즉 보조 기억장치(하드디스크, SSD)에 존재하며 실행을 기다리는 명령어(코드) 예로 .exe파일과 같은 하나의 실행할 수 있는 데이터의 묶음이다. 한가지 상황을 상황을 생각해보면 .exe로 되어있는 실행파일 프로그램을 실행을 한다. 그럼 실행한 파일이 컴퓨터의 메모리 영역(RAM)에 올라가게 되고 해당 프로그램은 이제 실행중인 상..

article thumbnail
MongoDB Sharding(샤딩)
NoSQL/MongoDB 2021. 3. 17. 11:28

샤딩(Sharding)은 데이터를 여러 서버에 분산해서 저장하고 처리할 수 있도록 하는 기술이다. 복제 VS 샤딩 복제: 여러 서버가 서로의 데이터를 동기화하는 것 샤딩: 여러 서버를 분산하는 기술 MongoDB에서 복제와 샤딩의 목적을 혼동하는 경우가 많은데, MongoDB의 복제는 고가용성(HA)을 위한 솔루션이며 샤딩은 분산처리를 위한 솔루션이다. 여기서 고가용성이란 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말하고, 분산처리는 데이터를 여러 서버에 분산해서 저장하고 처리할 수 있도록 하는 기술이다. 몽고DB에서는 고가용성을 위해서 중복된 데이터 셋을 준비하는 것이다. 그래서 MongoDB에서 고가용성과 대용량 분산처리를 하려면 복제와..