목록2024/11 (48)
코딩항해기

C드라이브를 포맷 한 후 git을 재설치 해서 D드라이브에 있는 파일을 git에 업로드하기 위해 init을 진행했는데 브랜치가 추가되지 않는 문제가 발생했다. (기본 브랜치) 원인은 포맷을 진행하며 git이 이전 사용자(포맷 전) 현재 사용자(포맷 후)가 다르다고 판단해 보안상으로 잠궜기 때문이다. 이러한 문제를 해결하기 위해서는 git에게 해당 디렉토리가 안전하고, 수정할 것임을 알려주면된다. 개인 드라이브이고, 다양한 폴더를 사용할 것이기 때문에 D드라이브를 통으로 추가했다. git config --global --add safe.directory D: 신뢰할 수 있는 디렉토리로 추가에 성공하자 브랜치가 정상적으로 뜨는 것을 확인할 수 있다.

OOP 5가지 원칙SOLID 원칙은 객체 지향 설계의 핵심 원칙으로, 소프트웨어의 유지보수성과 확장성을 높이기 위한 지침이다. 단일 책임(SRP), 개방-폐쇄(OCP), 리스코프 치환(LSP), 인터페이스 분리(ISP), 의존성 역전(DIP) 원칙을 통해 더 robust하고 flexible한 코드 구조를 만들 수 있다. SRP (Single Responsibility Principle, 단일 책임 원칙)한 클래스는 하나의 책임만을 가져야하며, 클래스는 단 하나의 변경 이유만을 가져야한다. 각 클래스는 하나의 특정 기능에 집중해야하며, 여러 책임을 동시에 지지 않아야 한다는 원칙이다. OCP (Open/Closed Principle, 개방-폐쇄 원칙)소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 ..

캐노니컬 태그 Canonical tagSEO 개선을 위한 중요한 기능 중 하나로 한 페이지가 가리키는 여러 개의 주소가 존재할 때, 검색 엔진에게 어떤 주소가 원본인지 알 수 있도록 사용하는 태그이다. 캐노니컬 태그 필요성파라미터(쿼리스트링)를 사용하거나, 모바일 주소와 같이 여러 주소가 나오게되면 검색엔진 로봇은 어떤 주소가 페이지를 가리키는 좋은 주소인지 알지 못한다. (https://test.com/page=1, http://m.test.com/index.jsp 와 같은 경우 외에도 쿼리스트링만 달라지는 경우에도 검색 엔진은 다른 주소로 인식한다.) 이러한 문제를 해결하는 방법으로 크게 두 가지가 있는데, 검색 엔진이 스스로 어떤 URL이 표준(캐노니컬)인지 판단하도록 하는 방법과 페이지에 표기하..

검색 엔진 최적화 SEO SEO - MDN Web Docs 용어 사전: 웹 용어 정의 | MDNSEO(검색 엔진 최적화)는 웹사이트가 검색 결과에 더 잘 보이도록 최적화하는 과정입니다. 검색 순위 개선이라고도 합니다.developer.mozilla.org SEO는 웹사이트가 검색 결과에 더 잘 보이도록 최적화하는 과정으로 검색 순위 개선이라고도 한다. 검색 엔진은 웹을 크롤링하면서 찾은 컨텐츠의 색인을 생성한다. 검색 결과로 보이는 것이 색인된 컨텐츠이다. 크롤러는 일정한 규칙을 띠르기 때문에 해당 규칙을 따라가면 웹사이트 검색 결과 최상위에 노출될 가능성이 높아지는 것이다. 검색 엔진에 대한 SEO 가이드라인을 제공하긴하지만 대형 검색 엔진의 경우 순위가 공개되지 않으므로 공식 지침에 경험, 논문과 특..

인덱스 [리뷰/우아한테크] 데이터베이스 INDEX인덱스색인 기능을 수행한다. 색인은 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록을 의미한다. 인덱스 없이 저장된 데이터는 기준이 없어 select 할 때 모든 데이터를 비교해야하므로 느minibcake.tistory.com 인덱스 사용 이유DB에서 성능 최적화는 디스크 I/O와 관련된 것이 많다. 조회 성능을 개선한다는 것은 디스크 I/O를 줄이는 것이 핵심이다. 하드디스크의 I/O는 메모리 I/O에 비해 속도가 현저히 느리다. 다만 인덱스는 조회에서는 좋지만 수정, 삭제 등에서는 성능이 저하된다는 단점이 있다. 그러나 일반적인 웹사이트에서 R CUD의 비율은 8:2에서 9:1정도 조회가 많기 때문에 조회에서 성능이 좋아진다면 약간의 저하가 있..

인덱스색인 기능을 수행한다. 색인은 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록을 의미한다. 인덱스 없이 저장된 데이터는 기준이 없어 select 할 때 모든 데이터를 비교해야하므로 느리지만 데이터가 특정 기준으로 정렬되어 있다면 select를 빠르게 할 수 있다.즉, 인덱스란 데이터베이스 테이블에 대한 검색 성능을 향상시키는 자료 구조이며 WHERE절 등을 통해 활용된다. 인덱스는 항상 최신의 정렬상태를 유지하며, 인덱스도 하나의 데이터베이스 객체이다. 데이터베이스 크기의 약 10%정도의 저장공간을 필요로 한다. 인덱스 알고리즘Full Table Scan페이지가 여러 개 있어도 순차적으로 데이터에 접근하는 특징이 있다. 접근 비용이 감소한다. 적용 가능한 인덱스가 없거나, 인덱스의 처리 범위가..

NumPyNumPy는 Python에서 과학 연산을 위한 기본적인 패키지 중 하나로 Numeric Python의 약자이다. 대규모 다차원 배열과 행렬 연산에 필요한 함수와 메서드를 제공한다. 데이터 분석, 데이터 처리, 선형 대수, 머신 러닝 등 다양한 분야에서 널리 사용된다. NumPy 설치하기PIP 방식으로 설치 가능하며 cmd창에서 해당 명령어를 입력하면 된다.pip install numpy 사용선언내장 함수가 아니기 때문에 사용할 때는 상단에 import 선언을 해주어야한다. 별칭은 일반적으로 np를 사용한다.import numpy as np 사용공식문서 NumPy documentation — NumPy v2.1 ManualThe reference guide contains a detailed d..

[Python] CSV 파일 데이터 불러오기파이썬은 데이터 시각화에 유용한 언어이다. 데이터 시각화를 하기 위해서는 데이터가 있어야하는데, 이 글에서는 데이터를 불러오는 방식에 대해 정리할 예정이다. 먼저 CSV란, 표 형태의 데이minibcake.tistory.com matplolib 라이브러리에 있는 pyplot 모듈을 활용해 데이터 시각화 작업을 진행한다. matplolib 라이브러리 다운로드matplolib는 외부 라이브러리이므로 다운로드가 필요하다. cmd창에서 install 명령어를 통해 다운로드 할 수 있다.pip install matplotlib shell에서 import만 넣고 실행해봤을 때 오류가 나지 않는다면 이미 설치된 상태라는 것을 확인 할 수 있다.확인이 완료됐다면 사용할 곳 ..

이번에는 파이썬으로 같은 문제를 풀이하고 풀이한 사람들과 코드를 공유하고 리뷰하는 시간을 가지며 문제를 풀이했다. 혼자 풀이할 때보다 같이 코드를 공유하고 개선점을 논의하며 발전해나가는 과정이 더 재밌는 것 같다! :D Pythonimport mathdef solution(n, words): answer = [] #입력받은 키워드만큼 반복 #배령에 해당 키워드가 있거나 바로 직전 단어의 마지막 단어로 시작하지 않는다면 #i나머지n+1은 번호 #i나누기n+1은 차례 #종료 #기록에 키워드를 저장 #전부 실행했는데도 빈 배열이라면 0,0을 저장 #번호 차례 history = [words[0]] #게..

JAVApackage src.test;public class ModeStr {// 문자열 code가 주어집니다.// code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다.// mode는 0과 1이 있으며, idx를 0 부터 code의 길이 - 1 까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다.// mode가 0일 때// code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다.// code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다.// mode가 1일 때// code[idx]가 "1"이 아니면 idx가 홀수일 때만 ret의 맨 ..