전체 글 (27) 썸네일형 리스트형 코딜리티 Iterations - BinaryGap (파이썬) 알고리즘 공부할 필요성을 느껴 온라인 코딩테스트를 시도해 보고 있습니다. 테스트를 진행해 본 몇가지 중에 프로그래머스, 코딜리티(codility)가 괜찮은 것 같았습니다. 둘의 차이라면, 프로그래머스: 한글설명, 주어진 예시만 해결해도 코드 에러발생율 적음 코딜리티: 영문설명, 주어진 예시외의 예외처리를 고려해야함 정도였던 것 같습니다. 개인적으로 코드 가독성에 중점을 두는 편인데 일부 인원이 작성한 숏코딩을 보면 난해해서 보기 어려운 경우도 있었습니다. 그래서 쉽게 코드를 짜서 공유하는게 좋겠다는 생각이 들었습니다. Iterations - BinaryGap 문제링크: https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ 설명 (요약.. 메타버스(Metaverse) 란? 1. 메타버스 (Metaverse) 1.1. 개념 - Meta(가상) + Universe(세계) = Metaverse (가상세계) (* 1992년 닐 스티븐슨의 소설 에서 처음 당장한 개념과 영어) 1.2. 정의 - 가상의 3차원 공간과 현실이 적극적으로 상호작용하는 공간 (* 뚜렷한 정의가 확립되지 않음) 2. 메타버스 유형 (* 아래는 비영리 기술 연구 단체 ASF(Acceleration Studies Foundation)에서 정의) 2.1. 증강현실 (Augmented Reality) - 현실공간에 가상 그래픽을 겹침 - 예: 프롭테크 2.2. 일상기록 (Lifelogging) - 일상에서 보고 듣고 느낀 모든 정보를 기록, 공유 - 온라인상에서의 나 - 예: SNS (인스타그램, 유투브 등) 2... NFT 란? 1. NFT 개념 - 대체 불가능한 토큰(NFT, Non-Fungible Token) - 블록체인에 저장된 데이터 단위: 가상화폐의 암호화 방식에 따라 형태가 다르다 - 고유하면서 상호 교환할 수 없는 토큰 - 디지털 컨텐츠(사진, 비디오, 오디오 등)에 토큰을 결합하여 일종의 '디지털 정품 소유 인증서' 성격을 가짐 2. NFT와 가상화폐 - FT (Fungible Token, 가상화폐) : 같은 가상화폐끼리의 가치는 같다. - NFT (Non-Fungible Token) : 같은 토큰방식이더라도 컨텐츠별 가치가 같지 않다. 3. NFT 장점 (* 블록체인 기반이기에 해당 장점을 모두 가지고 있음) - 위조 어려움 - 추적이 용이 블록체인 데이터는 공개적이고 투명함 누구나 NFT의 출처, 발행시간 및 .. REST란? - REST API, RESTful (* 설계, 개발 개념) 1. REST 1.1. REST 정의 Representational State Transfer: 자원(resource)의 표현(representation)에 의한 상태(state) 전달(transfer) - 자원: 문서,그림,동영상 등 모든데이터 - 표현: 예 - DB의 학생 데이터 명칭을 'students'로 표시 - 상태 전달: 데이터 요청에 대한 상태 응답 (주로 JSON, XML 형태로 응답) 분산 하이퍼미디어 시스템(예: WWW)을 위한 소프트웨어 개발 아키텍처의 한 형식 - 웹 개발에 적합: 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용 - Client/Server 통신 방식 중 하나 1.2. REST 개념 자원 기반의 구조(ROA: Resource Oriented.. MSA 란? 1. MSA 란? Micro Service Architecture -> MSA : 하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처 : small services, each runnung in its own process (스스로 동작하는 작은 서비스) : independently deployable (독립적으로 배포가능) 장점 - 서비스 별 개별 배포 가능: 빠른 요구사항 반영 - 서비스 별 확장 용이: 수정에 대한 전체 시스템에 대한 영향력이 낮음 - 장애가 전체 서비스로 활대될 가능성이 낮음 단점 - 서비스 간 호출에 따른 성능 저하 - 서비스 분리로 인한 테스트/트랜잭션 이 복잡하고 많은 자원 필요로함 - 서비스 분리로 인해 데이터 조회 및 관리.. DevOps란? CI/CD란? DevOps : 소프트웨어의 개발(Development)과 운영(Operations)의 합성어 : 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화 DevOps 목적 : 운영 프로세스의 예측 가능성, 효율성, 보안, 유지보수 가능성을 극대화하는 것 제품 출시까지 걸리는 기간(time to market) 단축 (CD) 새로운 판의 더 낮은 실패율 픽스 간 짧아진 리드 타임(상품 생산 시작부터 완성까지 걸리는 시간) 복구 시 더 빠른 평균 시간 (새로운 릴리스의 충돌 및 그 밖에 현재의 시스템를 비활성화하는 상황에서) DevOps 툴체인 계획(Plan) - 목적을 수행하기 앞서 방법이나 절차 등을 미리 생각하여 계획. 코드(Create) - 코드 개발 및 검토, 버.. 정규표현식 정리 + 사례 연구 1. 정규표현식 사용 이유 - 정의: 패턴에 입각한 텍스트를 찾고 수정하는데 쓰는 문자열 - 특징: 범용성, 이식성 - 단점: 애플리케이션 별로 구문 차이가 있거나 지원하지 않는 기능이 있을 수 있다. 원하는 값을 찾는 것보다 원하지 않는 값이 찾아지지 않도록 하는 것이 매우 어렵다. (※ 애플리케이션은 보통 자바스크립트, 자바, 텍스트 툴 과 같은 프로그래밍 툴) 2. 문자 하나 예문 KBS1에서 하는 방송 KBS2에서 하는 방송 정규표현식 KBS 결과 KBS1에서 하는 방송 KBS2에서 하는 방송 설명 일반 텍스트 검색도 정규표현식의 일종 예문 KBS1에서 하는 방송 KBS2에서 하는 방송 정규표현식 KBS. 결과 KBS1에서 하는 방송 KBS2에서 하는 방송 설명 . 은 메타문자 - 모든 문자 (2.. Base64 인코딩/디코딩 정의: 정보를 64진수로 표시 컴퓨터에서 64진수 표현을 위해 6 bit 를 사용 (2^6 = 64) 원리: 대부분 컴퓨터의 정보 단위는 8 bit (1 byte) 이므로 Base 64 에서는 6 bit 를 8 bit 단위로 맞추기 위해 6과 8의 최소공배수인 24를 기준으로 8 bit 3묶음(3byte)을 6 bit 4묶음으로 변형하고 각 묶음을 아스키코드(A-Z a-z 0-9 +-: total 64개문자) 값으로 변경하는 방식 데이터가 3바이트로 나누어떨어지지 않을 경우 '=' 문자를 채움 사용 목적: 1. 암호화 2. 64개의 아스키문자열로 변환하여 데이터를 전송. -> 호환성 향상 사용예: 1. 한글과 같은 2바이트 문자열 전송시의 데이터 깨짐을 방지 2. 이메일 전송시 사용 단점: 1. 데이터 .. 이전 1 2 3 4 다음