분류 전체보기 464

개발자의 성장

최근 개발자의 성장에 대한 이야기가 많이 나오는 것 같다. 개발 유튜버들의 주제에서도 언급되고 트위터에서도 많은 의견이 오고 갔다. 개인적인 생각을 이야기하자면, 개발자의 성장이 업무 시간 외의 투자를 의미한다면 동의할 수 없다는 쪽이다. 일을 끝내고 퇴근한 뒤 해결하지 못했던 문제에 대해 고민하고 몰랐던 내용에 대해 공부하는 것은 좋지만 그것을 의무로 느껴서 반드시 해야한다고 스스로를 몰아붙일 이유는 없다고 생각한다. 종종 주변에서 일하고 계신 현직자분이나 아직 학생인 친구들의 이야기를 들어보면 개발자라는 직업과 본인의 정체성을 동일시하는 경우가 있는 것 같다. 인생에 있어서 직업이 큰 비중을 차지하는 것도 맞는 말이고 개인의 정체성 형성에 큰 영향을 끼치는 것 또한 마찬가지이지만 그것을 자신의 정체성..

생각들 2022.10.20

[Python3] python3의 itertools.groupby 사용

문제가 풀리지 않아서 솔루션을 찾아보던 중 처음보는 function을 사용하는 솔루션을 보게 되었다. groupby 라는 function 인데 이런걸 본적이 있나 싶었다. 검색을 해보니 pandas 에서 사용하는 groupby 가 가장 먼저 나왔다. 하지만 좀 더 찾아보니 pandas 의 groupby가 아니라 itertools 의 groupby 였다. pasdas groupy는 같은 값을 하나로 묶어 통계 또는 집계를 위해 사용한다고 한다. 만약 도시 별로 가격 평균을 구한다고 가정하면 아래와 같은 코드가 나올 수 있겠다. object.groupby('city').mean() 자세한 내용은 다음 링크에서 찾아볼 수 있다. https://ponyozzang.tistory.com/291 itertools의..

[C++] 임시 객체란 무엇인가? Temporary Object?

최근에 공부를 하던 중 교수님게서 C++ lock guard의 특정 동작에서 발생하는 버그를 말씀해주시면서 임시 객체라는 표현이 등장했다. 임시 객체라는 표현이 들어본 것 같으면서도 정확히 뭔지는 모르고 있다는 생각이 들었다. 예상하기론 다른 동작을 위해 생성되어 잠시 동안만 존재하고 희생적으로 사용되는 객체일 수 있겠다는 추측을 했다. 추측을 하고 났으니 이제 정확한 개념에 대해서 알아보자. 임시 객체는 실행 도중에 잠깐만 사용되는 객체이다. 소스 코드에도 없는 힙 이외의 공간에 생성된다고 한다. 그런데 임시 객체는 성능 저하를 유발하는 원인이 되기 때문에 Call by reference를 해서 임시 객체를 만들어주지 않는 것이 좋다고 한다. 참고로 이 예제는 C++을 예시로 들어 설명하고 있는 예제를..

C & C++/C++ 2022.10.19

[BOJ] 백준 2529 부등호 - Java 풀이

최근에 백준을 풀던 중 꽤 흥미로운 문제를 발견했다. 시간이 오래걸리기도 했는데 과정에서 꽤 재미를 느꼈다. 또한 배울점이 많은 코드라는 생각이 들어서 첨부했다. 조금 어렵다는 생각이 들기도 했는데 문제 자체가 굉장히 흥미로워서 그냥 붙잡고 불었다. 원래 좀 어려운 문제를 만나면 약간의 스트레스가 생기기 마련인데 이 문제는 그냥 재밌는 문제다. 다른 분들도 이 문제는 꼭 답지 보지 말고 풀어봤으면 한다. 백트래킹 문제인데 부루트포스도 같이 사용해서 풀 수 있는 문제이다. 문제는 아래와 같다. 문제 링크: https://www.acmicpc.net/problem/2529 자 간단하게 dfs 순회하면서 모든 가능한 경우의 대해서 돌아보면 된다. 물론 백트래킹 특성에 따라서 특정 조건에 따라서 가지치기하는 조..

[GDSC] GDSC 1기 합격 후기 (Google Developer Student Clubs)

우리 학교에서 진행하는 GDSC 1기에 합격했다. 면접을 보고 나서 떨어졌다고 생각했는데 며칠 뒤 Lead 님으로부터 온 메시지를 받고나서야 붙었다는걸 실감했다. GDSC에서는 스터디, 프로젝트 진행과 솔루션 챌린지를 하게 된다고 한다. 솔루션 챌린지에 대한 정보가 없었는데 찾아보니 지정된 몇가지 이슈에 대한 프로젝트를 진행한다고 한다. 환경, 에너지 등등 다양한 이슈가 주제로 나올 수 있다고 한다. 무엇보다 좋았던 것은 기술에 대해 자유롭게 말할 수 있는 공간이 생긴 점이다. 의견을 말하고 피드백을 받을 수 있는 공간이 필요했었는데 GDSC가 그 역할을 해줄 수 있다는 생각이 들었다. 다른 개발자들은 어떤 것을 공부하고 있고 기술에 대해 어떻게 생각하는지 항상 궁금했었다. 평소 기술에 대한 최신 정보를..

[Gradle] 일반 Java 프로젝트 진행 중 Gradle 로 프로젝트 변환하기

아래 블로그에서 도움을 받았다. 감사합니다. 는 아니고 임의로 gradle 파일들 설정하다가 완전 꼬여버렸다. 그냥 Gradle 프로젝트 새로 파서 거기로 옮겨주자. https://pmandocom.tistory.com/102 [JAVA] IntelliJ - 일반 JAVA 프로젝트를 Gradle 프로젝트로 변환하기 & Java file out of source root 오류 해결 공식 홈페이지를 참고했다. 1. 프로젝트 폴더에 build.gradle을 생성한다. 2. build.gradle에 다음의 내용을 넣는다. plugins{ id 'java' } group 'org.example' version '1.0-SNAPSHOT' repositories { mavenCen.. pmandocom.tistory..

Java lang 2022.09.29

[GDSC] GDSC 1기 면접 후기 (Google Developer Student Clubs)

GDSC 1기에 서류 통과했다는 소식을 주말에 전해들었다. (참고로 GDSC는 Google Developer Student Clubs의 약자로 구글에서 진행하는 프로그램이다. 구글 기술에 관심있는 전세계 대학생들을 대상으로 진행하는 프로그램이고 자유로운 스터디와 기술 세션 등이 진행되는 프로그램이다.) 이후 면접을 진행하게 되었는데 선착순으로 면접 시간을 정할 수 있어서 오늘 오전 9시와 10시 사이로 잡게 되었다. 면접은 Lead 님께서 직접 참여하셔서 일대일로 진행했다. 분위기를 편하게 만들어주시려고 배려해주시는 점이 감사했다. 최근 근황, 관심있는 분야 등에 대해 가볍게 물어보셨다. 특히 말하는 내용을 모두 경청해주시면서 최대한 내 이야기를 할 수 있도록 이끌어주신 점이 감사했다. 평소에 말하고 싶..

[Git] Hyper-v 설정 적용 이후 Git push 에러

최근 실습때문에 Hyper-v 를 on으로 바꿀 일이 있었는데 이후에 코딩을 하던 중 git push origin main이 먹히질 않는 문제를 발견했다. 보기에는 단순히 로그인 access가 만료되었다고 떠서 다시 로그인하면 될 것 같은데 사실 문제는 그게 아니다. Hyper-v를 켜둬서 문제가 생긴거다. 왜 Hyper-v가 영향을 준건진 모르겠지만 방금 확실하게 테스트해본 결과 Hyper-v를 켜두면 git push 가 안먹히고 Hyper-v를 꺼두니 이제서야 git push 가 잘 먹힌다. 어떤 연관관계가 있을까. 지금은 모르겠다. 확실한건 도커든 뭐든 간에 뭘쓰다가 이상하다 싶으면 혹시 며칠전에 Hyper-v 관련해서 작업해본 적이 있었는지 떠올려보면 될 것 같다.

인프라/Git 2022.09.21

[SW] SOLID 원칙이란 무엇인가?

SOLID 원칙이란 무엇인가? SRP (Single responsibility principle): 단일 책임 원칙이다. 즉 클래스는 하나의 책임만 가져야 한다는 뜻이다. OCP (Open/closed principle): 개방-폐쇄 원칙이다. 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다는 뜻이다. LSP (Liskov substitution principle): 리스코프 치환 원칙으로 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다는 뜻이다. ISP (Interface segregation principle): 인터페이스 분리 원칙이다. 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다는 뜻이다. DIP ..

개발 정보 2022.09.18
반응형