전체 글 93

[Gitistory] Chrome driver를 통해 소프트웨어로 블로그 자동 로그인하기

개발공부를 목적을 두고 수행하고 싶어서 사이드 프로젝트를 하나 진행하려한다. 프로젝트 기능은 github의 PR 내용을 블로그에 자동 업로드하여, 코드와 주요 변경사항을 손쉽게 파악할 수 있도록 하는것이다. 이름은 Gitistory 그 과정에서 발생하는 트러블 슈팅 및 개발 과정을 정리하도록 하겠다. Flask 개발 환경 세팅 개발환경은 지난 포스팅을 통해 세팅을 완료했다. 다음은 이제 내 블로그에 소프트웨어 코드로 포스팅을 하는 방법을 찾는 것이었다. 처음엔 당연히 tistory open api를 사용하려고 했다. 하지만 왠지 올해부터 자동 댓글 생성하는 봇이 활동을 안하더라.. 아무튼 그래서 다른 방법을 생각해내야 했다. 크래프톤 정글에서 코치님이 '개발자에게 불가능한 것은 없다. 다만 시간이 얼마나..

프로그래밍 2024.07.29

Flask로 개발 프로젝트 시작하기

깃허브 PR - Tistory 블로그 포스팅 연동 기능 프로젝트를 진행하기 위해 가볍게 프로젝트를 시작할 수 있는 python의 flask를 선택했다. 먼저 Flask 프로젝트를 수행하는 절차를 기록하고 수행하는 절차의 각각 목적을 학습하여 정리하겠다.   Flask 프로젝트 구축먼저 아래 명령어를 순서대로 터미널에 입력한다.# 가상 환경 생성python -m venv .venv# 가상 환경 활성화# Windowsvenv\Scripts\activate# MacOS/Linuxsource .venv/bin/activate# Flask 설치python3 -m pip install flask  처음에 블로그보고 그냥 가상환경 내에서 pip install flask로 flask를 설치한 후에 app을 실행하니 f..

카테고리 없음 2024.07.29

자기 회고

소프트웨어의 힘과 적성을 느낀 후, 대학교 4학년때부터 개발에 관한 공부를 시작했다. 나에게 가장 큰 동기부여는 내가 좋아하는 일을 하는 것이었다. 좋아하는 일을 하면 잘 할 수 있는 사람이라고 스스로 생각하는 편이다. 4학년 때 졸업 작품으로, 개발을 해보고 싶어 학과의 사물함 신청 웹페이지를 제작했다. 이 작품으로 캡스톤디자인 경진대회에서 최우수상을 받았고, 상과 함께 사람들에게 편리한 기능을 제공하는 개발자가 되고 싶다는 꿈도 생겼다. 이후 개발을 하기 위한 공부를 시작했고, 학교에서 진행한 SW 아카데미 교육에서 5개월간 학습했다. 밑바닥이고 무엇부터 시작해야될지 모르던 나에게 Java라는 언어를 처음 경험하게 해주었고, Springboot를 사용한 웹개발, 데이터베이스 설계와 응용방법, 프론트와..

회고 2024.07.13

[Scala] 공부 내용 정리

"class A extends B with C"이 때, C는 스칼라 언어에서 Trait라고 부르며, Java의 인터페이스와 유사하지만 구체적인 메서드 구현을 포함할 수 있다.예시 코드는 다음과 같다trait C { def traitMethod(): Unit = { println("This is a method from trait C") }} class B { def superClassMethod(): Unit = { println("This is a method from class B") }} class A extends B with C { def classAMethod(): Unit = { println("This is a method from class A") }} obje..

프로그래밍 2024.07.12

[회고] 쎄트렉아이 인턴 최종 면담

Goal : 처음에 수립한 목표는 무엇이었나?개발 역량을 키우는 것인턴 후 채용 합격하는 것Reality : 실제 수행결과는 목표에 얼마나 부합했는가? (만족했는가?)개발 역량을 키우는 것 ← 보통경험적으로는 많이 채우지는 못했지만 플러스였던것 같음개발 구현 업무에 집중하기보다는 프로젝트 일정에 맞춰서 개발 외 업무가 많아서 아쉬웠음인턴 후 채용 합격하는 것 ← 불만족일상에서는 최선을 다했다고 생각함3개월 기간동안의 모습으로 평가하지 않고 1시간 면접으로 결론이 나는 것이면 이 제도가 왜 있는 것인지 의아함을 느꼈음개인적으로는 면접 시 어떤 사람인지 알기보다는 공격적인 태도로 면접이 진행되 것에 실망스러움이 있음말을 끊음 (당연히 그렇겠죠? 같은..) 위축되고 더 정리해서 말해야 겠다는 강박이 생겨서 대..

회고 2024.07.12

[SCALA] 스칼라란?

scala 코드를 분석하는 업무를 수행하며 스칼라 코드에 대해 처음 알게 되었다. scala는 java보다 늦게 생겨나, 오래 전부터 인기를 끌어온 java보다 유명하지 않지만 최근 떠오르고 있는 함수형 프로그래밍을 접목하되, 객체 지향 프로그래밍까지 같이 챙겨가면서 Java와의 호환성도 좋아 비교적 최근에 많은 호응을 얻었다고 한다. 이미 자리 잡은 개발자들에게 스칼라가 왜 매력있는 언어였는지, 또 Java와는 어떤 연관성이 있는지 정리해보겠다. Scala의 장점 1. 간결함, 그리고 표현력 스칼라는 함수형 프로그래밍을 지원하여 고전 Java에 비해 더 간결하고 표현력 있는 코드를 작성할 수 있게 해준다. 예를 들면 순회 컬렉션 처리에서의 람다 함수와 고차 함수를 사용하면 복잡한 코드를 더 간결하게 작..

프로그래밍 2024.07.12

[함께 자라기 : 애자일로 가는 길] 인상 깊었던 문구들

"이미 갖고 있는 것들을 하이퍼링크로 촘촘히 연결하라. 노드 간 이동속도가 빨라질 수 있도록 고속도로를 놔라" - 39p 핵심 메시지독립적으로 배움을 더하지말고, 학습을 서로 이어 복리적인 성장을 통해 효율적으로 배워라 왜 인상이 깊었는가?이 구절을 보며 체계적인 성장을 지향하는 사람들에게 경외심을 느꼈다 내게 의미하는 바는?이 구절을 보며 지난 시간동안 열심히 역량 성장을 위해 노력해 온 경험에서 서로 다른 기간과 분야에서 학습한 내용들을 각각에 집중했었다고 스스로의 상태를 확인할 수 있었다.   " A작업은 종사 직무가 원래 하는 일, B작업은 A작업을 개선하는 일, C작업은 B작업을 개선하는 일 " - 34p 핵심 메시지A를 개선하기 위해 DevOps와 같은 B작업이 도입되고,C작업은 DevOps팀..

회고 2024.07.11

[TIL] 객체 지향 프로그래밍(OOP)이란 ? (feat. 객체지향 5원칙 - SOLID)

지금까지 비즈니스 코드를 유지보수한 경험이 없어, 객체 지향 프로그래밍에 대한 필요성을 느끼지 못했다. 집중적으로 파고 들면서 객체 지향 프로그래밍을 학습한 적도 없어서, 대충 뭔지 한마디로 정의할 수는 있겠지만 정확히는 잘 모르겠다. 그래서 궁금해서 집중적으로 공부해보았다. 객체 지향 프로그래밍(OOP)이란? OOP = Object-Oriented Programming 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그램 내의 데이터를 추상화한 뒤, 상태와 행위를 가지는 객체로 선언 후 사용하는 프로그래밍이다. 과거에는 데이터의 시간 절차 순으로 프로그래밍하는 절차 지향 프로그래밍을 사용했지만, 코드의 양이 많아지면서 코드의 유지 보수를 위해 객체 지향 프로그래밍을 사용하게 되었다. ..

프로그래밍 2024.03.30

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

오늘 이력서 작성 중, 같이 교육받았던 형님이 Slack에 메시지를 올렸다. CS 기술 면접에서 첫 질문으로 프로세스와 스레드의 차이점에 대해 설명하라는 질문을 받았다고 하셨다. 그러고 곰곰히 생각해봤다. 나는 프로세스랑 스레드의 차이점을 확실히 이해하고 설명할 수 있나? 12월에 pintOS 운영체제를 학습하면서 그토록 스레드와 프로세스를 가지고 놀면서 마스터했다고 생각했지만, 막상 설명하려고 생각해보니 명확히 설명하지 못할 것 같았다. 그래서 ! 오늘 다시 프로세스와 스레드의 정의를 바로 지난달에 발표를 마친 let's Note 프로젝트에 적용하여 한번 이해해보는 시간을 가져보려고 한다. 프로세스란 ? 프로세스는 죽어있는 프로그램에 생명이 부여되어 실행되고 있는 상태를 말한다는 운영체제 속 문구가 생..

Java 2024.03.24

[TIL] WEB RTC 구현 기록 - FE

나만무 프로젝트를 진행하면서 webRTC를 이용하여 음성채팅 기능을 구현하기 위해 공부했다. 프로젝트에서 백엔드 개발을 담당했지만, webRTC를 활용하여 음성채팅을 기능화하기 위해 프론트 작성도 담당하기 위해 따로 공부했다. 리액트에서 발생하는 버그들을 고치기 위해 javascript에서의 리액트 마운트 순서를 공부했고, 리액트 훅의 사용법과 상하위 컴포넌트간의 관계에 대해 공부했다. 이 기능이 가능할 수 있게 해주는 원리에 대해 머리속에 복잡한 내용을 A4용지에 쓰던걸 여기에 적도록 하겠다. WEB RTC 란? WEBRTC는 기본적으로 서버가 중간에 개입하지 않고 peerTopeer로 연결하여 음성 채팅과 같은 스트림 전송을 수행할 수 있게 한다. 이를 위해선 Peer - Peer가 서로의 웹 세팅,..

Jungle 2024.02.29