전체 글 110

[서적] '객체지향의 사실과 오해' 1장 후기

우연한 기회로 읽게 된 '객체지향의 사실과 오해'.가벼운 마음으로 읽다 보니 책이 생각보다 재밌고 내용이 좋아서, 읽으며 느낀 점들을 다시 한번 처음부터 되짚어 보려 한다.  들어가며먼저 이 책을 본격적으로 읽기 전에, 내 스스로 내가 생각하는 '객체지향'이 뭔가? 에 대해서 생각해보는 시간을 가졌다. 자바의 정석을 그렇게 봤음에도 저 질문을 떠올리자마자 어버버하며 명쾌하게 한 문장으로 정리할 수가 없었다. (부끄러웠다) 그래서 종이를 한 장 꺼내 끄적끄적 수기로 정리해봤다. 최대한 머릿 속에 흩어져있는 개념들을 간결하게 정리한다고 노력했다.책을 다 읽고난 후, 내가 정리해 본 이 개념이 어떻게 수정(혹은 삭제될지도 ..ㅋㅋ)될 지 궁금하다. 이제 본격적으로 읽어보자!  [1장 : 협력하는 객체들의 공동..

Review 2024.04.30

[programmers lv2.python] 롤케이크 자르기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제  1차 풀이 (완전 탐색) 👉 실패def solution(topping): answer = 0 for i in range(len(topping)): a = topping[i:] b = topping[:i] if len(set(a)) == len(set(b)): answer += 1 return answer 오.. ..

[programmers lv2.python] 이진 변환 반복하기 풀이 (리팩토링 다..수..)

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 1차 풀이 (리팩토링 전) 👉 정답def solution(s): count_zero = 0 count_binary = 0 while s != '1': # 0의 갯수 카운트하고 s의 모든 0 제거 count_zero += s.count('0') s = s.replace('0', '') # s를 s의 길이(c)..

[Python] 리스트와 딕셔너리의 차이

오늘은 알고리즘 문제를 풀어오며 머리속에 둥둥 떠다니던 리스트와 딕셔너리의 개념을 확실히 정립하고 넘어가고자 포스팅을 작성해보려고 한다. 리스트와 딕셔너리 각각의 개념을 예시와 함께 정리하고, 이 둘의 차이와 활용 방법, 더 나아가 리스트와 딕셔너리를 어떻게 조합해서 쓸 수 있을까 까지 정리해보겠다 😋 ✏️ 리스트란?여러 가지 값을 순서대로 저장할 수 있는 데이터 구조이다. a = [1, 5, 2]b = [3, "a", 6, 1]c = []d = list()같은 자료형도 들어갈 수 있고, 다른 자료형도 들어갈 수 있다. 또한 리스트의 길이는 len() 함수를 사용해서 잴 수 있다.a = [1, 5, 2]print(len(a)) # 출력값: 3b = [1, 3, [2, 0], 1]print(len(b..

[프로젝트 회고] 뉴스피드 개인 프로젝트를 마치며

약 6주간의 시간 동안 진행했던 내 첫 번째 개인 프로젝트가 드디어 끝났다. 100% 내가 해야하는 모든 기술적 의사결정과 처음 써 보는 스택들로 설렘 반 막막함 반이었던 개인 플젝이였다. 개발이 잘 풀렸던 적도 있었고 생각했던 대로 안 풀렸던 적도 있어서 힘들 때도 있었지만, 같은 주제로 프로젝트를 진행했던 동료들이 있어서 도움을 주고 도움을 받으며 중간에 포기하지 않고 무사히 끝낼 수 있었다고 생각한다. 이 타이밍에 프로젝트를 하면서 느꼈던 점들을 정리하고 되돌아보면서, 다음 프로젝트 땐 어떻게 더 발전할 수 있을지 회고해보는 시간을 가져보려 한다. 📌목적기여도 100%의 개인 프로젝트를 진행해보면서, 소프트웨어 설계부터 개발, 테스트까지 전반적인 진행 과정을 모두 경험해보는 것직전에 진행했던 팀 ..

Project/Newsfeed 2024.04.25

[TIL][OS] 프로세스와 스레드의 차이

전에 심포지엄 주제로 멀티 프로세스와 멀티 스레드의 개념과 그 차이에 대해서 공부했었는데, 그때는 프로세스와 스레드가 뭔지 기본적인 개념 정도만 짚고 넘어갔었다.그게 아쉬워서 오늘은 단순한 개념을 넘어, 프로세스의 상태 값들과 메모리 구조는 어떻게 되있는지, 그 각각의 구조는 뭔지 등을 공부해보면서 프로세스와 스레드에 대해 깊고! 자세하게 공부한 것을 기록해 볼 생각이다. 프로세스란?프로세스(Process)는 컴퓨터에서 실행되고 있는 프로그램을 말한다. * task (CPU 스케쥴링의 대상이 되는 작업) 라는 용어와 거의 같은 의미로 쓰인다. 문장으로만 보면 다소 추상적으로 느껴질 수 있기에 그림으로 예를 들어서 설명해보겠다. 위의 그림처럼, 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어..

Computer Science 2024.04.24

[Python] 변수의 mutable과 immutable의 차이

요새 아침마다 알고리즘 스터디를 하면서, 그날 그날 레벨이 높은 문제가 당첨될수록 내 힘으로 풀지못하고 구글링의 힘을 빌리는 날이 많아지고 있다. 그래서 얼렁뚱땅 푸는 게 아닌 정말 기초부터 탄탄히 하고 싶어서 프로그래머스의 코딩 기초 트레이닝 124 문제를 하루에 되는 대로 많이 풀고 있다. 오늘은 문득 문제를 풀면서 이 값은 저장을 해줘야돼 말아야돼? 고민하다가 이 참에 정리를 하고 확실히 한 후 넘어가려고 포스팅 해보려한다. 일단 다들 알고 있겠지만. 변수란? 변수(Variable)는 프로그램의 처리 과정에서 데이터를 담아둘 수 있는 메모리의 공간을 의미한다. 하나의 변수에는 하나의 값만 저장할 수 있고, 이 값은 변할 수 있기 때문에 뜻 그대로 '변수' 라고 하는 것이다. * 변수 이름 짓는 팁 ..