목록분류 전체보기 (32)
멍
요근래 메모기능을 개발하던 중.. 메모를 같이 볼 수 있게 하는 참조자를 jquery autocomplete를 이용해서 개발했는데 문제점이 생겼다. 영어로 검색할때는 문제가 없으나. 한글로 검색할때 찾고자 하는 검색어가 '아이스크림'일때 '아이스크림'을 입력할때 autocomplete로 완성되었을 때, 아이스크림 아이스크림1 아이스크림2 이렇게 나올때 밑에 목록을 ↓버튼으로 골라도 목록이 그대로 유지가 된다. 하지만 검색어를 '아이'라고 입력했을때 마찬가지로 autocomplete로 완성되었을 때, 아이스크림 아이스크림1 아이스크림2 이렇게 목록이 나올때 ↓버튼으로 한칸 움직이면 값이 '아이스크림'으로 바뀌면서 재검색이 된다. jquery -ui 1.12.1 버전에서 autocomplete를 찾아봤을때 ..
비정규화 vs 정규화 데이터베이스 비정규형 모델은 정규화를 하지 않은 모델이 아니라, 정규화를 마친 후에 비정규화를 한 모델이다. 비정규화(Denormalization)는 조회 성능을 향상시키기 위해 데이터를 중복하거나 그룹핑하는 과정을 의미한다. 비정규형을 사용하는 유일한 목적은 조회성능을 향상시키기 위해서다. 단순히 조인(Join)을 피하고자,사용의 편이를 위해 중복 속성을 사용해선 안 된다. 중복된 데이터는 원천 데이터와 정합성을 맞춰야 해서 사용하기 편하지 않다. 무조건 빠른 것보다는 문제가 없고 정확한 데이터를 선호하고 있다. 정규화를 하면 좀 더 논리적인 모델을 얻을 수 있지만... 만약 LG시스템 내의 출장자 정보를 가진 테이블이 있다고 하자. 누가 갔는지는 알야아하니 사번과 출장번호를 묶어..
객체 지향 설계 1. 객체 지향 객체 지향 프로그래밍 기법(Object-Oriented Programming, OOP) 이하 객체 지향 컴퓨터 프로그래밍의 패러다임 중 하나 1.1 객체지향의 등장 배경(왜?) 육하원칙논리에서도 가장 중요한 why를 모른다면 다른건 하나마나 의미가 없죠. 그래서 개념이 왜 등장했는지 짚고 넘어가고자 합니다. 우주나 인간이 처음부터 지금의 모습이 설계된 것은 아닙니다. 모든 것들이 환경에 맞게 진화를 거듭해 나가듯이 프로그래밍 패러다임도 발전해 나가는 과정을 거칩니다. -> 비구조적 프로그래밍 ( 스파게티소스, GOTO문 ) - 하나의 덩어리에 모든 코드를 때려박는 프로그래밍.. 원시적이고 GOTO문에 의한 흐름제어문에 의존적이다. -> 절차적 프로그래밍 ( C, C++, ..
개발하는 사이트의 비밀번호 변경과정에서 발생한 에러 여느 사이트에도 비슷한 경험담이 있어 그것과 같이 해결했으며, 기록함 key, value 형식으로 메일 템플릿에 비밀번호를 넣는 과정에서 replaceAll함수를 사용하는 과정이 있었는데 비밀번호에 "$'가 포함되어 있으면 에러가 발생하였다. 자바 공식 문서에서 replaceAll의 사용 함수 내부로 들어가보면 Matcher클래스의 replaceAll 함수 내에 do{ // sb 는 stringBuffer, replacement는 바꿀 문자열이다. appendReplacement(sb, replacement); } while 로 구현이 되어있고 appendReplacement를 보면 바꿀문자열을 charAt으로 쪼개서 nextChar에 담고 그것을 \\..
https://m.blog.naver.com/jwyoon25/221289425535 서브 쿼리와 성능 서브 쿼리란 SELECT 문(main query)에 포함되어 있는 또 하나의 별도 SELECT 문이다. 상관 서... blog.naver.com - select 절에 서브쿼리(스칼라 서브쿼리)를 쓰면 성능이 많이 떨어질 수 있으며, 다중row,column출력시 에러 발생하므로 주의. - 서브쿼리보다는 조인이 성능상에 앞서는 경우가 많다, 사용시의 조건에 따라 틀리므로 실행계획을 참조
n이 3이라면 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 6가지 중 k = 5 라면 3,1,2를 출력하면된다. n
위상정렬 이라는 개념을 알아야 한다고 한다. 모르고 처음 푼 코드를 올린다. 그냥 dfs로 스택에 담아서 쭉 둘러보는 방법으로 옛날에 dfs풀었던 방법을 적용해서 풀었다. 분명 기존알고리즘과는 다르기때문에 비효율적으로 짰을 것이다. 4를 짓기 위해선 2,3을 동시에 행할 수 있고, 3을 건설하는 동안 2는 이미 다 완성되어 결과에 영향을 미치지 않는다. 4를 지으려면 10+100+10 = 120초의 건설시간 필요 만약 이렇게 되어있고 4가 최종건물이라면 4에서 바라봤을때 2,3,5가 지어져야 하는데 어차피 5가 110초이므로 2,3은 볼 필요도 없다. 그러므로 5가 최종 건설시간이다. 라고 생각할 수도 있다. 2,3이 결과에 무의미하다 해서 넘어가서는 안된다. 1때문에 그래서 모든 노드를 한번은 탐색해서..
어떻게 가는지 제한이 없기 때문에 출발점이나 도착점을 감싸는 원이 아닌 원들은 거쳐갈 일이 없다. 계산해서 출발점과 도착점을 포함하는 원들만 카운팅 해주면 된다. 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 32 33 34 35 36 37 38 import java.util.Scanner; //어린왕자 public class Main { static int[] start; static int[] end; static int count = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int testCas..
java의 지식을 되짚어 보는 글. 1991년 썬의 엔지니어에 의해 고안된 Oak라는 언어에서 시작 C++의 장점을 도입하고 단점을 보완을 목적으로 개발되었다. #java의 특징 -1. 운영체제에 독립적이다. 기존의 프로그램을 운영체제에 맞춰 다르게 개발해야 했었던 부분을 JVM이라는 중간과정을 통해 JVM이 운영체제에 따라 서로 다른버전을 제공함으로써, 프로그램을 버전별로 나눌 필요가 없어졌다. -2. 객체지향언어이다. 객체지향개념의 특징인 상속, 캡슐화, 다양성이 잘 적용된 순수한 객체지향 언어라는 평가를 받는 언어. -3. 자동 메모리 관리 ( Garbage Collection ) 자바로 작성된 프로그램이 실행되면, 가비지컬렉터가 자동적으로 메모리를 관리해준다. 이로 인해, 프로그램이 비효율적일 수..
처음 백준 알고리즘을 접했을때 1000부터 정복한다 ㅋㅋㅋ 하는마음으로 1000번부터 덤볐던 기억이난다. 터렛에서 무슨소린지 못알아듣고 처음에 피보나치라는 개념은 학부시절에 들어서 재귀이고 이렇게 짠다는것 정도 밖에 몰랐다. 그때 코드이다. 12345678910111213141516171819202122232425262728293031import java.util.*; public class Main{ public static int zero = 0; public static int one = 0; public static void main(String args[]){ Scanner sc = new Scanner(System.in); int testCaseNum = Integer.parseInt(sc.n..