본문 바로가기

반응형

분류 전체보기

(28)
[HTML / CSS] 한자가 공백으로 표시되는 현상 (한자 표시 안됨) 국내에서만 서비스하다가 일본 서비스를 위해 다국어(일본어) 작업 진행. 한자는 표시가 안되는데 히라가나는 표시됨.. 뭐지? 하지만 크롬 개발자도구에는 DOM 객체 Value에 한자 값이 들어가있음.. 인코딩이 문제인가? 사용하고있는 라이브러리, 프레임워크가 문제인가? 몇 시간을 삽질을 진행. 찰나 문득 예전에 font로 인해 무언가를 해결했던 기억이 떠오름! font를 바꾸니 한자 표시 잘됨 ^^; 범인은 'Jeju Gothic' 요녀석 폰트였던것..
에라토스테네스의 체 ( 소수 [Prime Number] 판별 알고리즘 ) 예제 에라토스테네스의 체 알고리즘이란? 여러 개의 수가 소수인지 아닌지를 판별할 때 사용하는 대표 알고리즘이다. 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾을 때 사용할 수 있다. 알고리즘 순서는 다음과 같다. 2부터 N까지의 모든 자연수를 나열한다. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 남은 수 중에서 i의 배수를 모두 제거한다 (i는 제거하지 않는다). 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다. 예를 들어 N = 1000 일 때를 확인해보자. [step1] 먼저 2부터 N(26)까지 모든 자연수를 나열한다. (1은 소수가 아니다) [step2] 남은 수 중에서 아직 처리하지 않은 가장 작은 수를 찾은 다음, 그 수를 제외한 배수를 제거한다. 따러..
탐색 알고리즘 이진 탐색 [코딩 테스트, 코딩 면접 준비] 예제 이진 탐색 (Binary Search) 이란? 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다. 데이터가 무작위일 때는 사용할 수 없지만, 이미 정렬되어 있다면 매우 빠르게 데이터를 찾을 수 있다는 특징이 있다. 이진 탐색은 탐색 범위를 절반씩 좁혀가며 데이터를 탐색한다. 이진 탐색은 위치를 나타내는 변수 3개를 사용하는데 탐색하고자 하는 범위의 시작점, 끝점, 중간점이다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 과정이다. 이미 정렬된 10개의 데이터 중에서 값이 4인 원소를 찾은 예시를 보자. [step1] 시작점과 끝점을 확인한 다음 둘 사이에 중간점을 정한다. 중간점이 실수일 때는 소수점 이하를 버린다. 그림에서 각각의 인덱스는 시..
[MS-SQL] Warning: Null value is eliminated by an aggregate or other SET operation MSSQL(SQL Server) 쿼리를 조작 하던 중 실행은 정상적으로 되지만 아래와 같은 Warning이 발생했다.. Warning: Null value is eliminated by an aggregate or other SET operation. 원인은 집계함수(MAX)를 사용하던 중 MAX 값을 구하고자 하는 데이터 중에서 NULL이 존재했던 것이다! 예를들어 아래와 같은 데이터가 있을 때, SELECT MAX(Test1) FROM [예시 테이블] 위와 같은 쿼리를 실행 할 경우 NULL 값으로 인하여 Warning 발생! 그런데 저기에 NULL이 왜 들어갔지...
전략 패턴 (Strategy Pattern) 이란, 개념 및 예시 전략 패턴 (Strategy Patter) 이란 GoF 디자인 패턴 중에 행위 패턴에 해당되는 전략 패턴은 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 여기에서 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등으로 이해할 수 있다. 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴이다. 특히 게임 프로그래밍에서 게임 캐릭터가 지신이 처한 상황에 따라 공격이나 행동하는 방식을 바꾸고 싶을 때 전략 패턴은 매우 유용하다. 전략 패턴 예시 [로봇 만들기] 만들어야 할 로봇 아톰(Atom 클래스)과 태권V(TaekwonV 클래스..
[Design Pattern] 디자인 패턴 이해 목적 및 사용 이유 디자인 패턴이란 디자인 패턴이란 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책이다. 디자인 패턴을 사용해 문제를 해결하려는 시도는 소프트웨어 분야가 처음은 아니다. 다만, 디자인 패턴을 맹신한 나머지 모든 문제를 패턴을 사용하여 해결하려드는 패턴보다는 코드베이스의 간결성이다. 즉, 디자인 패턴 적용이 굳이 필요가 없을 것 같은 부분은 적용하지 않는 것이 상책이다. 사용 목적 및 사용 이유 우리 주변에서 자주 반복해서 발생하는 문제와 그 문제를 해결하는 핵심을 기술해 동일한 일을 두번 다시 하지 않고 해결할 수 있도록 한다. 구체적인 설명 없이 구조화된 패턴에 대한 사전 지식으로 개발자 간에 커뮤니케이션이 수월하다. 설계 과정의 속도를..
Git 저장소(Repositories) 병합(Merge) 하는 방법 서로 다른 저장소를 한 프로젝트에 병합하는 방법 (How to merge repositories in Git) 프로젝트를 작업하다보면 다른 브랜치 병합이 아닌, 다른 저장소 병합이 필요할 때가 있다. 저장소 병합 방법을 알아보자. 예를들어 아래와 같이 프로젝트가 있다고 가정. project1 project2 project1에서 project2를 병합하고자한다. 반드시 병합전에 각각 프로젝트를 Commit후 Push 한다. # project1 저장소 이동 $ cd project1 # 병합하고자하는 project2 저장소를 remote에 추가 $ git remote add project2 'project2 저장소 URL' $ git fetch project2 # 병합 $ git merge --allow-un..
[탐색 알고리즘 BFS 너비 우선 탐색] 예제 자바 코드 (코딩 테스트, 코딩 면접 준비) 탐색 알고리즘 BFS 너비 우선 탐색 개념 정리는 아래 링크 참조 https://developercc.tistory.com/13 탐색 알고리즘 BFS 너비 우선 탐색 [코딩 테스트, 코딩 면접 준비] BFS(Breath First Search)란? 너비 우선 탐색이라고도 부르며, 가까운 노드부터 탐색하는 알고리즘이다. DFS(Depth First Search)는 최대한 멀리 있는 노드를 우선으로 탐색하는 방식으로 BFS는 그 반대이다. BF developercc.tistory.com BFS 알고리즘 예제 [문제] 유정이는 N * M 크기의 작사각형 형태의 미로에 갇혀 있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 유정이의 위치는 (1,1)이고 미로의 출구는 (N,M)의 위치에 존재하..

반응형