목록분류 전체보기 (282)
Hayden's Archive
알고리즘 문제 출처 : 백준 - 15988번 : 1, 2, 3 더하기 3 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 내가 작성한 코드 import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); long[] check = new long[1000001]; check[1] = 1; check[2..
알고리즘 문제 출처 : 백준 - 11053번 : 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 내가 작성한 코드 다이나믹 프로그래밍 말고 다른 방법으로 풀어볼 수 있을 것 같아서 도전했다가 실패하고 결국 다이나믹 프로그래밍으로 풀었다. 먼저 check에 1씩 할당해야 한다.(어느 수이든 1가지 방법 이상이기 때문) 앞에 있는 numArr..
VO 필드명 DB 컬럼명 자바에서는 주로 Camel Case를 쓰는 반면, DB에서는(+파이썬에서도) Snake Case를 쓴다. 그러다 보니 VO 필드명과 DB 테이블 컬럼명이 불일치하는 경우가 생길 수 있다. 위에서는 userId, userName과 user_id, user_name이 서로 불일치한다. 단위 테스트 코드 package ibatis.services.user.test; import ibatis.services.domain.User; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apac..
* Summary SqlSession * query statement * INSERT INTO ------------- insert() * DELETE FROM ------------- delete() * UPDATE table ------------ update() * SELECT all -------------- List selectList() * SELECT one -------------- Object selectOne() DB 테이블 - mysawon VO - MySawon.java package com.encore.mybatis.vo; /* * Framework에서는 반드시 기본 생성자를 넣어야 한다.(생성자 아무것도 안 넣었을 경우에는 알아서 만들어짐) * MyBatis에서는 값의 주입을 S..
Persistence Layer DAO는 반드시 Component 기반으로 만들어져야 한다. DAO가 있는 레이어를 Data Access Layer 또는 Persistence Layer라고 함. 여기에서 Raw한 데이터를 가져옴. 퍼시스턴스 계층(Persistence Layer) 참고 : https://blog.naver.com/nine01223/220373593398 Service Layer - 데이터를 가공. 이렇게 한 것을 최종적으로 Controller에게 넘겨줌. MyBatis - MyBatis 는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. - MyBatis 는 JDBC 코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거한다. - MyBa..
* Summary 하나의 bean은 하나의 객체와 같음. bean 태그에는 필수속성 2개가 있음. id와 class class에 FQCN을 쓰고, id에는 인스턴스명을 씀. 주문서를 보고, 주문서대로 객체를 만들고 객체를 보관하고 있는 클래스가 DI Container인 것. * 폴더 구조 Dice.java (인터페이스) package spring.service.dice; public interface Dice { void selectedNumber(); int getValue(); } DiceAImpl.java (DiceBImpl.java, DiceCImpl.java도 거의 동일) package spring.service.dice.impl; import java.util.Random; import spr..
(이클립스를 가동해서 Spring을 하려면 STS(Spring Tool Suite)를 연결해야 함. 그런데 지금 쓰는 이클립스 버전이 높고 호환이 잘 안 돼서 STS를 가지고 있는 이클립스를 설치하였음.) 폴더 구조 이클립스에서 Dynamic Web Project를 만들 건데, 기본적으로 있는 src 폴더를 Remove 하고 아래와 같은 큰 줄기 3개를 만들겠음. (모든 폴더는 이 세 가지 폴더 안에 들어가게 됨.) java 폴더 외에 resources 폴더에는 Meta Data(특정한 정보를 상수값으로 가지고 있는 파일)를 넣겠음. Test 클래스는 따로 구분.(~Test, ~AppTest로 끝나는 클래스) src 폴더를 다각화 시킬 것. src 폴더 안에는 클래스만 넣는다. test는 그저 실행 파일..
Spring Framework에는 Spring MVC Fattern, Spring DI, Spring JDBC, Spring AOP, Spring Security 등 여러가지가 포함되어 있음. 이렇게 여러개의 모듈들이 합쳐진 것이 통틀어서 Spring Framework임. 하나하나가 완벽한 Component이므로 꼭 Spring에서 제공하는 거 다 안 써도 됨. 다른 거 끼워서 쓰면 됨. Spring JDBC 현업에서 거의 안 씀. 대신 JPA, MyBatis(MyBatis의 이전 버전은 IBatis)를 씀. 일본에서는 Spring JDBC를 많이 씀. Spring Framework에만 집중하지 말고 Framework란 무엇인가....? -> 회사에서 어떤 Framework를 쓰든 적응할 수 있어야 함...
큰따옴표(")를 출력해야 했는데 아스키코드를 활용하여 출력했다. 이전에는 입력을 받을 때 CS50 라이브러리에 있는 get_int, get_string을 사용했는데 C 표준 라이브러리에 있는 scanf를 사용했다. ( 참고 : https://www.tutorialspoint.com/cprogramming/c_input_output.htm ) C언어에서는 자바나 C++과는 달리 String형이 존재하지 않고, 문자열은 char배열로 존재한다. 또 이미 선언하고 할당한 char배열로 문자열을 사용할 때, 배열을 선언한 즉시 문자열로 초기화하며, 배열을 미리 선언해놓고 문자열을 나중에 할당할 수는 없다. 이 점 때문에 애를 먹었는데 편하게 CS50 라이브러리를 사용할까 하다가 C 표준 라이브러리를 사용해보고 ..
코랩 설치 및 설명 참고 : https://theorydb.github.io/dev/2019/08/23/dev-ml-colab [Colab] Google Colab (코랩) 환경설정 및 사용법 개요 파이썬을 활용한 머신러닝의 첫 관문! 구글 Colab(코랩)의 환경구성 및 기본 사용법을 다룬 포스트입니다. 목차 Colab이란 무엇인가? Colab 환경설정 Colab을 활용한 간단한 예제 작성 Colab & Markdow theorydb.github.io 환경 설정 코드를 보기 전 이해를 돕기 위한 그림 Loss Function - MSE (정량화된 값일 때) - Cross Entropy Loss (분류일 때) 1장도 시간 엄청 많이 걸리는데 6만장 동시에 못함. 그래서 쪼개서 돌려야 하는데 그게 batc..