본문 바로가기

전체 글101

코어 자바스크립트 [1] - 데이터 타입 1. 데이터 타입 종류 자바스크립트에서 데이터는 크게 기본형(Primitive)과 참조형(Reference) 데이터 타입으로 나뉩니다. 이 둘 사이의 주요 차이는 데이터가 메모리에 저장되고, 변수에 할당되며, 그리고 다른 변수로 복사될 때 어떻게 처리되는지에 있습니다. 기본형 데이터 타입(Primitive Data Types) 기본형 데이터 타입에는 숫자(Number), 문자열(String), 불리언(Boolean), null, undefined, 심볼(Symbol), 그리고 ES2020에서 도입된 BigInt 등이 있습니다. 이들은 다음과 같은 특징을 가지고 있습니다: 값이 직접 저장됩니다: 변수에 기본형 데이터를 할당하면, 메모리에는 그 값 자체가 저장됩니다. 값에 의한 복사(Value Copy): .. 2024. 2. 26.
보다 효율적인/효과적인 테스트 작성 1. 테스트 관련 이론 개괄 1-1. 개발할때 테스트 작성을 하는 이유 1-1.(1) from 안드로이드 문서 장애에 관한 신속한 피드백 개발 주기에서 조기 장애 감지 회귀에 신경 쓸 필요 없이 코드를 최적화할 수 있도록 하는 더 안전한 코드 리팩터링 기술적 문제를 최소화하는 안정적인 개발 속도 1-1.(2) from 🐇💬 기획자의 의도 세분화 새로 추가한 테스트 단위로 PR을 올리게 되면 협업 시 각자의 작업 내용을 이해하기 쉬워짐. 자신이 작업하지 않은 부분이어도 코드 구현 내용 및 과정을 보다 더 잘 이해할 수 있게 됨. -> 양질의 리뷰를 받을 수 있게 됨. 수동 리그레션 테스트에 드는 비용을 유의미하게 줄일 수 있음. 요건 서비스 규모가 커질수록 더욱 큰 효용을 지닐것. 번거로운 환경 세팅 작업.. 2024. 2. 22.
Git 커밋 메시지 컨벤션 1. 설명 모든 commit message는 [적용 범위(선택 사항)]: 를 포함해야합니다. 커밋 메시지 타입 feat (new feature) 새로운 기능 fix (bug fix) 버그 수정 docs (changes to documentation) documentation 변경 style (formatting, missing semi colons, etc; no code change) 코드 의미에 영향을 주지 않는 변경사항 ( white space, formatting, colons ) refactor (refactoring production code) 버그를 수정하거나 기능을 추가하지 않는 코드 변경, 리팩토링 test (adding missing tests, refactoring tests; no.. 2024. 2. 22.
2024 미드레벨 도약 프로젝트 💡2024 목표 : → lv.3 (주니어) 에서 lv4.(미드레벨(중니어)) 로 도약하자! - 중급개발자? 가 뭘까 - 지금 나와 중급개발자의 차이는 뭘까? - 중급개발자가 되기 위한 구체적인 액션플랜은 어떻게 될까? 1. What’s “중급개발자”? [1] 지식 주니어에서 벗어나는 지식들인 디자인 패턴, 아키텍처, 테스트 자동화, 성능, 보안, 빌드/배포 등은 시니어의 가치를 높여주는 지식입니다. 역으로 주니어는 기본적인 코딩 실력도 중요하지만 위와 같은 지식들을 쌓아가면서 시니어로 넘어가는 과정을 겪어야 합니다. [2] 코딩 코드는 다른 개발자가 보더라도 이해하기 쉽고 빠르게 수정할 수 있도록 작성해야 합니다. 즉, 사람이 이해하기 어려운 코드를 작성하는 것은 코딩 실력이 낮다고 이야기할 수 있습니다.. 2024. 2. 22.
프로그래머스 - 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이1] 내 풀이 (스택 사용) def solution(arr): # 짝을 지어 소거하는 문제이므로 stack으로 접근해 문제를 풉니다. stack = [] for s in arr: if s == "(": stack.append(s) else: if stack: stack.pop() else: return False return len(stack)==0 O(n) 정석적으로 스택을 사용해 풀어봤음.. 2024. 2. 20.
프로그래머스 - 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이1] 내 풀이 1 from collections import deque def solution(progresses, speeds): answer = [] # 먼저 배포되어야 하는 순서가 있으므로, queue를 써야함을 예상해볼 수 있다. work = deque() for num,speed in zip(progresses,speeds): work.append((100-num, speed)) #.. 2024. 2. 19.