전체 글
-
[코어 자바스크립트 스터디] 2주차 - 클로저와 GCJavascript 2022. 6. 26. 18:36
1. 발단 let a = 100; console.log(a);// 100 내가 a라는 식별자를 선언하고, 100이라는 값을 할당하게 되면 메모리 변수 영역의 빈 공간을 확보해 이름을 a라고 지정한다. 한편 메모리 데이터 영역에서 100이라는 값을 보관하고 있는 공간이 있는지 확인한다. 없다면 빈 공간에 100이라는 값을 할당한다. 다시 변수 영역 a에서는 100이 저장된 공간의 주소값을 저장한다. 일련의 과정을 마치면 할당된 메모리를 사용할 수 있다. 같은 방식의 메모리 할당이 무한정 일어난다면 더이상 메모리를 할당할 수 없는 상황이 발생할 것이다. 다행히 자바스크립트과 같은 고수준의 프로그래밍 언어에서는 가비지 컬렉터를 활용하여 메모리 생명주기를 암묵적으로 관리하고 있다. MDN에 따르면 개발자는 대개..
-
[파이썬] 정규표현식 정리Python 2022. 6. 20. 21:38
1. 도입 프로젝트를 진행할 때 파이썬 웹 크롤링을 진행하였다. 당시 문자열을 직접 parsing하는 코드를 작성하였는데, 생각해보니 그게 가능했던 이유는 HTML 태그를 분석해서 필요한 데이터만 뽑아올 수 있었기 때문이다. 만약 긴 텍스트 데이터에서 원하는 형식의 데이터만 가져오려면 좀 더 효율적인 방법이 필요하다는 생각이 들었다. 덕분에 미루고 있던 정규표현식을 공부하게 되었다. 2. 메타 문자 사용하기 문자 의미 예시 예시 매칭 ^ 문자열 시작 ^he "hello world", "hell", "heck" $ 문자열 끝 you$ "nice to meet you" | or ^CSS | awesome$ "CSS is awesome" "Javascript is awesome" [] 문자 클래스 (여러 조건..
-
[코어 자바스크립트 스터디] 1주차 - this와 화살표 함수Javascript 2022. 6. 16. 21:58
1. this 바인딩 this 바인딩은 함수의 호출 방식에 따라 동적으로 결정된다 자바스크립트는 함수가 "함수"로 호출되는 경우, this가 전역 객체를 가리키도록 설계되었다 즉, browser 환경에서는 window, node.js 환경에서는 global 객체를 출력하게 되는 것이다 function printThisInFunction () { console.log(this); } printThisInFunction(); /* Window {window: Window, self: Window, document: document, name: '', location: Location, …} */ ES5 체제에서는 함수 내부에서 this를 사용할 때, 주변 LexicalEnvironment에 있는 this를 ..
-
[코어 자바스크립트 스터디] - 시작Javascript 2022. 6. 16. 19:40
1. 스터디 시작 - 4월 말에서 5월 말 까지 한 달 간 데이터분석/머신러닝/인공지능 스터디를 진행했다. 한 달이라는 시간은 '맛보기'를 하기에도 참 짧다고 생각했다. 좀 더 깊게 공부하고 싶었지만 백엔드 개발자로서 역량을 먼저 갖추는 것을 우선순위로 정했다. - 7월 초에 새로운 웹 프로젝트를 시작하려고 하는데, 그 전에 자바스크립트의 핵심 개념을 한 번 더 정리하고 싶었다. 자바스크립트를 좀 더 깊이 이해하게 된다면, Node.js 기반 프레임워크를 사용할 때 많은 도움이 될 것이라는 판단에서다. - 이전 스터디 팀원 중 한 분과 마음이 통해 바로 스터디를 개설하였다. 모집은 빠르게 마감되었고, 우리는 6인 체제로 스터디를 시작하게 됐다. 2. 스터디 계획 a. 스터디 목표 코어 자바스크립트를 1회..
-
[1439] 뒤집기 - Python알고리즘 연습 2022. 4. 7. 14:00
1. 문제 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 2. 풀이 # 1. Read S S = list(input()) # 2. Find min_num min_num = 0 count = 0 for i in range(1, len(S)): if i > 0 and S[i] != S[i - 1]: count += 1 min_num = int((count if (count % 2 == 0) else count + 1) / 2) # 3. Print..
-
[2579] 계단 오르기 - Java알고리즘 연습 2022. 3. 23. 15:38
1. 문제 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 풀이 import java.io.*; public class Boj2579 { public static void main(String[] args) throws IOException { // 1. Read the stairs BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int height = Integer...
-
[1003번] 피보나치 함수 - Java알고리즘 연습 2022. 3. 18. 23:58
1. 문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { // 1. Read the test case BufferedReader br = new BufferedReader(new InputStreamReader(System...