전체 글 174

[잡담] 뜸한 블로그, 그리고 취업 1달차의 회고

요번 수요일에 취업한지 딱 한달이 되었다. 취업시장이 꽁꽁 얼어붙어, 나는 어떻게 해야하는가를 고민했지만,다행이도 이런 나도(?) 개발로 입에 풀칠할 능력이 있다고인정받은 것 같다 기분이 좋기도 했다. ??? : 야 내 동기는 취업했다고 일본 여행가고 하던데?나는 그런거 없었다.종강하고 딱 일주일정도 여유가 있었다. 그 기간동안 다른 할 일들을 준비해야 했다.  이제 월급이라는 고정수입이 발생한다. 하지만 월급만으로 우리가 원하는 것을 먹고, 원하는 옷을 입고, 원하는 집에 살기에는요즘 시장이 확실히 좋지 않다(이래서 다들 대기업가려고 하는건가) 이런 상황에서 살아남기 위해 주식, 적금, 청약등을 알아보기 시작했다. 청년 도약 뭐시기로 많던데, 월수입이 고정적이지 않아 신청이 불가능했다.. 슈카월드 유튜..

장's 개발생각 2024.07.28

[LeetCode] 1442. Count Triplets That Can Form Two Arrays of Equal XOR

https://leetcode.com/problems/count-triplets-that-can-form-two-arrays-of-equal-xor/description/?envType=daily-question&envId=2024-05-30문제 출처 비트연산자, 그 중에서도 XOR의 특성을 알면 쉽게 풀 수 있는 문제였다. 요즘 리트코드 데일리 문제를 하나씩 푸는 재미에 꽂혔다. 작년 이맘 때 즈음엔 비트연산자 문제가 나오면 스트레스를 받았는데, 요즘엔 오히려 비트연산자가 더 재미있다는 느낌을 받았다.  이 문제를 이해한 바로는 아래와 같다.  전체 배열에서 시작 인덱스 i, 끝 인덱스 j를 정한다. 그리고 그 끝 인덱스의 다음인 j+1에서, 또다른 끝 인덱스 k를 정한다.이 때 i부터 j까지 XOR한..

[냉메추] 이제 언어가 늘어갑니다!!! JS도 씁니다!!

Kotlin/Spring으로 WAS(Web Application Server)를 만들었다. 그런데, 우리 서비스는 기능들을 만든다고 바로 사용할 수 있는 서비스가 아니다. 많은 데이터가 필요하다. 데이터를 어떻게 구할 것인가?냉메추에서 필요한 데이터가 무엇일까?일단 레시피를 보여줄 수 있어야 하며, 레시피에 대한 각 재료들의 데이터도 있어야 한다. 이걸 어떻게 해결할지 방안을 모색해야한다.  이런 데이터가 존재하는 것을 보았다. 여기에서 데이터를 전처리해서 재료들을 빼내고, 데이터를 가져오는 것을 1차적으로 생각했다.그런데 여러 이슈들이 동시적으로 발생했다.  우리 서비스는 각 음식 사진에 대한 썸네일이 필요하다. 우리 서비스는 각 레시피에 대한 재료 데이터를 가져와 ingredients테이블에 넣어둘 ..

냉메추 2024.05.20

[잡담] 꽁꽁 얼어붙은 취업시장 위로 이장희가 걸어다닙니다.

부스트캠프가 끝난지도 5개월이 다되어간다.근래들어 생각도 많아지고, 바빠지기도 해서 포스팅을 자주 못했었는데,밀린 일상에 대한 일기처럼 써두어야겠다. (이 남자가 리프레싱 하는 방법)취업시장이 꽁꽁 얼었다...나도 행선지가 얼어붙은 취업시장 위다...ㅠ취업을 위해서 이곳 저곳 이력서를 쓰기 시작했다.  다른사람들의 취준 기록들을 보면 내가 쓸 자격이 있으면, 쓸 수 있다면 다 써보라고 했지만내 성격은 그러질 못해서인지기업에 대해서 찾아보고 실제 서비스를 써보고, 기업 관련 뉴스나 분위기들도 다 찾아보면서 이력서를 넣었다.  내가 이력서를 넣는 기준은 크게 두 가지였다. 이 회사의 서비스를 써보았을 때 좋았는가이 회사의 분위기가 내가 일하고 싶어하던 곳인가이렇게 두 가지만 보았다. 실제로 사용해보았을 때 ..

장's 개발생각 2024.05.20

[냉메추] 서버가 터진 건에 관하여...(자원관리를 잘하자)

사건의 발단서버가 중간에 죽는 문제가 있었다. 전체적으로 메모리 누수와동작중인 3개의 컨테이너간의 메모리 할당량을 체크해봤지만 아무런 문제가 없었다.  기본적으로 스왑 메모리를 많이 달아도너무 많은 컨테이너를 무료 인스턴스에서 돌리려고 한 것이고, 스왑 메모리 자체가 성능적이 저하를 일으킬 것이 문제였다. (심지어 HDD로 이루어진 스왑 메모리이기 때문에 더 느릴 것으로 추산했다. 자세한 내용은 이 글 참조) 이제 고민을 해야했다. 스케일 업인가, 스케일 아웃인가스케일 업 vs 스케일 아웃서버의 자원 한계점 도달이라는 현 상황에서 사용 가능한 대안을 생각해보자. 크게 스케일 업과 스케일 아웃이라는 경우의 수가 존재한다.  스케일 업이라는 것은 서버의 자원(CPU, RAM)을 더 좋은 성능의 부품으로 바꾸..

냉메추 2024.05.01

[코틀린 + 스프링] 코틀린? 이거 왜 익숙한데..?

이번 넹매추라는 프로젝트를 코틀린으로 한 달동안 구현을 해보며 느낀 부분들을 정리해보았다.코틀린에 대한 지식적인 부분이라기보단, 경험적으로 정리하는 글이라는 점을 알아두면 좋을 것 같다.하와와...너무 무서운 거시에요!처음에 내가 코틀린이라는 것을 이야기들었을 때 이런 생각이 들었다.당시의 나는 NestJS, 자바 스프링만을 써본 상황이었다.자바 스프링 독학과 네이버 부스트캠프에서 곰터뷰를 만들어보며 NestJS를 공부했었다.이런 나에게 같이 프로그래밍 공부를 시작했던 동기(그 친구는 우아한 테크코스에 있었다)가 말해준 것이,우리 취업하면 코틀린 써야할껄?이었다진짜 개무서웠다.여기에서 새로운 것을 또 공부해서 써야한다고?내가 공부한 것들도 완벽까지는 아닐것이다, 분명 더 깊은 무언가가 있을 것이다 라는 ..

[냉메추] 멀티모듈로 구현을 한다는 것. 서버가 많이 필요하다는 것.

이전에 이야기한 대로, 멀티모듈로 프로젝트를 만들기로 했다. 멀티 모듈을 어떻게 배포하는 건지, 처음부터 다시 정리해보기 시작했다. settings.gradle, build.gradle설정해주기물론 IDE 등에서 내부에 모듈을 추가하게 하면 자동으로 추가되지만, 그래도 알고 지나가는 것은 중요하다고 생각한다.우리가 가지고 있는 모듈 내부에 이런 모듈들이 존재한다는 것을 명시해주었다.  또한, build.gradle에서 이렇게 내부에 include된 모듈들에 대한 공통적인 dependencies를 추가해줄 수 있었다. subprojects { apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spr..

냉메추 2024.04.29

[운영체제] 리눅스 패키지(내가 맨날 헷갈린 apt쓸 때와 yum을 쓸 때)

(패키지라는 것이 무엇인지 알고 보는게 편하다. 이전 포스트를 보고오자. 리눅스에서는 리눅스 패키지라는 것이 존재한다. 리눅스 패키지란 리눅스 시스템에서 소프트웨어를 실행하는데 필요한 파일들(실행 파일, 설정 파일, 라이브러리 등)이 담겨 있는 설치 파일 묶음이다. 리눅스는 배포판에 따라 다른 패키지 형식을 지원한다. 여기에서 yum을 사용하는 경우와 apt를 사용하는 경우가 달라지게 된다. debian : ec2에서 사용하던 apt가 들어있다. 패키지는 .deb파일로 되어있다. 레드헷 : yum이 들어있다. 패키지는 .rpm파일로 되어있다. openSUSE : zypper이 들어있다고 한다. openSUSE를 위해 특별히 빌드된 패키지 형식이다. .rpm파일로 되어있다. if(rpm(레드헷) === r..

CS/운영 체제 2024.04.03

[운영체제] 패키지(리눅스 배포 패키지, npm)

개발을 하는 우리는 항상 리눅스를 사용한다. 그런데, 사람들의 블로그 포스팅을 보면 항상 이해되지 않는 한 가지가 존재했다. 왜 어떤 사람은 yum을 쓰고 어떤 사람은 apt를 쓸까? 이 질문에서 패키지라는 것을 학습해봐야겠다는 생각이 들었다. What is Package? 패키지는 소스코드 패키지, 바이너리 패키지로 분류된다. (저급언어/고급언어에 대해 안다면 이해가 쉬울 것 같다) 소스 패키지는 소스 코드로 이루어져 있는 패키지이다. 이를 읽고 실제로 컴퓨터에 적용시키려면 컴파일을 한 후 바이너리 코드를 컴퓨터에서 실행시켜야 한다. 그래서 설치가 더 오래걸린다는 단점이 존재한다. 또한, 하드웨어의 더 많은 저장공간을 차지한다고 한다. 그리고, 컴파일 에러가 발생할 수 있다는 단점이 있다. 바이너리 패..

CS/운영 체제 2024.04.03