H E L L O    W O R L D !
...

총 방문자 수

...

[]

총 포스팅

전체 글

·DB
개요토비의 스프링과 유튜브로 실습을 해보던 중 DAO와 DTO가 나왔다. 이름도 비슷해서 무슨 차이인지 궁금해서 검색을 통해 찾아보고 정리해 봤다.DTO (Data Transfer Object)DTO (Data Transfer Object)는 주로 데이터를 여러 계층 간에 전송하기 위해 사용된다. 예를 들어, 서비스 레이어에서 데이터를 데이터 액세스 계층(DAO)으로 보낼 때 DTO를 사용하여 데이터를 캡슐화하고 전송할 수 있다.DTO의 특징은 다음과 같다.데이터 전송을 목적으로 설계보통 데이터의 단순 전달을 위한 필드로 구성비즈니스 로직을 포함하지 않음getter / setter 메서드만 가진 순수한 데이터 객체 클래스 (Java Beans)DAO (Data Access Object)DAO (Data ..
·DB
정의트랜잭션이란 DB의 상태를 변경시키는 작업의 단위입니다. 예를 들어 A가 B에게 100만원을 계좌이체 하는 상황을 생각해 봅시다.A계좌에서 100원을 인출한다.B계좌에 100만원을 입금한다.위와 같은 두 가지 작업을 할 것입니다. 만약 A 계좌에서 100만원을 인출하고 난 뒤 오류가 발생한다면 A는 100만원이 없어지고 B는 100만원을 못 받는 일이 생길 것입니다. 이런 일을 방지하기 위해 두 가지 작업을 하나로 묶어서 처리하여 하나라도 실패하면 db에 반영하지 않고 모두 성공해야 데이터베이스에 반영해야 합니다. 여기서 하나로 묶은 것이 바로 트랜잭션입니다.ACID 속성트랜잭션에는 ACID라는 4가지 속성이 있습니다.Atomicity (원자성)트랜잭션이 모두 반영되거나, 모두 반영되지 않아야 한다...
·DB/MySQL
MySql 명령어show databases # 데이터 베이스 목록use [db 이름] # 데이터 베이스 사용show tables # 사용중인 데이터 베이스 안에 있는 테이블 목록create table [테이블 이름]( ... ...) # 테이블 생성drop table [테이블 이름] # 테이블 제거delete from [테이블 이름] where 조건 # 조건에 맞는 행 삭제delete from [테이블 이름 # 조건이 없다면 모든 행 삭제truncate table users # users 모든 데이터 삭제되고 빈 users테이블만 남음서버 실행윈도우시작누르기맥hombrew로 설치한 경우mysql.server start // 기본 문법 mysql -u [계정] -p [데이터베이스]   // 최상위 ..
·부트캠프/DB
조회한 데이터 값이 없을 때 대처법테이블에 잘못된 값이 있거나, JOIN을 했을 때 null값 일 때 해결하는 방법에 대해 알아봤다.방법에는 크게 두 가지가 있다. 첫 번째는 없는 값을 제외하자이다. SQL에서는 사용할 수 없는 값은 0으로 바꾸고 연산에서 제외시킨다. Where절에서 is null, is not null 로도 null값인 데이터를 걸러낼 수 있다. 두 번째는 다른 값을 대신 사용하는 것이다. if문을 사용하자.조회한 데이터가 상식적이지 않은 값을 가지고 있을 때먼저 상식적이지 않은 데이터란 음식 주문을 한 고객의 나이가 2살일 때, 주문일자가 1960년도 일 때이다. 이를 해결하는 방법은 쉽다. Where절에서 조건을 지정해 주자.피벗 테이블피벗 테이블이란 두 개 이상의 데이터를 집계할..
·부트캠프/DB
오늘 배운 것SQL 문법 중 서브 쿼리와 JOIN에 대해 배웠다. 서브 쿼리와 JOIN은 처음에 어려웠는데 보다 보니 조금 적응이 됐다.서브쿼리서브 쿼리는 말 그대로 쿼리 안에 있는 쿼리이다. 서브쿼리는 복잡한 계산식/조건식을 편하게 해 준다.(A + B) * 2를 보자. 먼저, A+B를 계산하고 그 값에 * 2를 해주는 식이다. 서브쿼리도 마찬가지이다. 쿼리 안에 서브쿼리를 먼저 계산하고 그 위에 있는 상위 쿼리에서 계산한 값을 사용해서 연산을 하거나 조건식을 걸어주거나 한다. 서브 쿼리를 사용하는 방식은 아래와 같다.select column1, special_culumnfrom ( /* 서브 쿼리 */ select column1, column2 special_column from table1) ase..
개요저번에 자바로 구현했던 단어 맞추기 게임을 웹페이지로 구현해보고 싶었다. 디자인은 아래 사진을 참고 했다.플로우는 이러하다.초기화랜덤 단어 선택랜덤 단어 길이에 따라 단어들을 담을 박스에 박스와, 1글자씩 분리해서 넣어준다.넣어준 뒤 텍스트만 display 를 none으로 해준다.두번째 알파벳들을 담을 박스에 알파벳들을 동적으로 넣어준다.로직사용자의 인풋을 받는다.사용한 알파벳은 마찬가지로 display none으로 숨겨준다.입력한 알파벳이 랜덤 단어에 들어가면 그 부분은 display:"" 으로 세팅해서 보이게 해준다.모든 처리가 끝난 뒤 chance를 한개씩 감소승패처리display값이 none인 요소가 하나도 없다면 승리 처리 chance가 0이면 패배처리위를 토대로 구현했다. ..
·부트캠프/DB
3-1. 3주 차 오늘 배울 것저번 주차에서는  SQL의 기본 구조에 대해 배웠다.SELECTFROMWHEREGROUP BYORDER BY이번 주차에서는 문자열 가공, 조건에 대해 알아보자.3-2. 업무에 필요한 문자 포맷이 다를 때 SQL로 가공하기(REPLACE, SUBSTRING, CONCAT)쿼리 결과를 바로 사용할 수 없을 때 우리는 SQL로 데이터를 가공할 수 있다.다음과 같은 상황이 있을 수 있다.데이터를 보니 잘못된 값이 있는데 이전에 사용하던 값이어서 다른 문자로 수정해줘야 하는데, 하나하나 수동으로 하기는 너무 많을 때주소 전체가 아닌 '시도' 정보만 필요하거나, 전체 주소가 아닌 '서울'로 문자를 변경할 때사업장 [지역]과 같은 형태로 문자 포맷을 변경할 때이럴 때 사용하는 함수는 R..
5번의 가위바위보 게임을 해서 승리한 횟수 상당의 상품을 받아가는 게임을 만들어보자조건은 이러하다.5번의 가위바위보를 진행한다.유저는 매 판마다 "가위", "바위", "보" 중 하나를 입력한다.잘못된 입력을 받았다면 잘못된 입력입니다! 를 출력해 준다.컴퓨터는 가위, 바위, 보 중 랜덤 하게 하나를 낼 수 있다.매판마다 진행한 가위 바위 보의 승패에 대한 결과를 출력한다.5판을 모두 마치면 승리한 횟수에 걸맞은 경품을 획득할 수 있다.문제를 딱 보고 리스트나 Map을 사용하면 쉽게 만들 수 있을 것 같았다.구현import java.text.MessageFormat;import java.util.*;//TIP To Run code, press or// click the icon in the gutter..
·부트캠프/DB
2-1. 2주 차 배울 것저번 주차에서 sql의 개념과 기본구조에 대해서 학습했다. 이번 주차는 sql안에 있는 여러 가지 기능을 배우고 실습해 보자.2-2. 데이터 조회와 엑셀 함수 적용을 한 번에 끝내기(SUM, AVG, COUNT, MIN, MAX)연산SELECT 구문 안에서 연산을 할 수 있다.아래 예시를 보자.SELECT food_preparation_time, delivery_time , food_preparation_time + delivery_time as total_time FROM food_ordersfood_praparation_time + delivery_time을 더해준 컬럼을 만들어준다.+이외에도 '-', '*', '/'도 사용 가능하다. 엑셀에 있는 함수들을 SQL에서 적용해보..
단어를 주어진 기회 안에 맞추는 게임을 만들어 보자!이런 느낌의 이미지가 있었는데,  먼저 든 생각은 콘솔로 만들기 어려울 것 같았다(로직보단 ui가....)최대한 저 이미지 처럼 비슷하게 표현하려고 노력했다.조건은 이러하다.1. 컴퓨터가 랜덤으로 영어단어를 선택한다.2. 사용자는 A부터 Z까지의 알파벳 중에서 하나를 입력한다.3. 사용자가 9번 틀리면 게임오버된다.4. 게임오버 되기 전에 영어단어의 모든 자리를 알아내면 플레이어의 승리다. 영어단어는 간단하게 gpt에 부탁해서 7개를 뽑아왔다.배열, 리스트, 셋을 사용해서 구현했다.구현import java.text.MessageFormat;import java.util.*;public class Main { public static void mai..
간단하게 자판기를 만들어보자조건은 이러하다.1. 사용자가 볼 수 있게 메뉴를 표시한다.2. 사용자는 음료를 선택할 수 있다.3. 사용자는 지불할 금액을 입력할 수 있다.4. 사용자는 음료를 구매하고 남은 잔액을 확인할 수 있다. 인풋은 자바의 Scanner를 사용해서 입력을 받고 나머지 구현은 Map을 사용해서 구현하면 될 것 같다.구현import java.text.MessageFormat;import java.util.*;public class VendingMachine { public VendingMachine(){ setUp(); } public Map prices = new HashMap(); private void setUp() { prices.pu..
랜덤 한 닉네임을 생성해 보자조건은 이러하다.사용자는 최소 27가지 이상의 닉네임 중 하나를 랜덤으로 출력할 수 있다.키워드기절초풍, 멋있는, 재미있는도전적인, 노란색의, 바보같은돌고래, 개발자, 오랑우탄내가 생각한 방법은 닉네임을 생성해 주는 클래스를 하나 만들고 스트링 배열 3개와 자바의 랜덤 클래스를 이용해서 만들어 볼 것이다.구현import java.util.Random;public class RandomNameGenerator { private String[] keywords_1 = {"기절초풍", "멋있는", "재미있는"}; private String[] keywords_2 = {"도전적인", "노란색의", "바보같은"}; private String[] keywords_3 = ..
nameless1004
Nameless