전체 글 174

[냉메추] 학교에서 새로운 서비스를 만들어보게되었다..!

학교에서 새로운 프로젝트를 진행하게 되었다. (캡스톤 디자인으로 시작했는데, 나중에 계속해서 빌드업을 해보면 좋겠다는 생각이 되었다. ) (곰터뷰가 이제 둘이 되겠군...?) 회원의 냉장고 데이터를 받아서, 추천해줄만한 메뉴를 만들어 반환하는 로직을 생각하고 있다. 데이터는 만개의 레시피에서 참조하기로 했다. 찾아보니, csv파일 형식으로 대략 20만건정도를 받을 수 있었다. 해당 데이터를 전처리해서 DB에 데이터를 넣어주고, 조회의 최적화 로직도 생각하게 되었다. 그래서 우리팀은? 우리팀은 프론트 둘에, 백엔드는 나 하나다. 심지어 캡스톤 디자인의 담당교수는 빅데이터, ML을 주로 가르쳐주시는 교수님시다. 즉, 나중엔 AI 관련 학습도 진행하면서 회원들의 사용내역을 모두 군집화해서 추천 알고리즘에 적용..

냉메추 2024.03.28

[운영체제] 컴퓨터 구조 간단하게 정리해보기(부제. 왜 스왑 메모리가 느렸을까?)

컴퓨터 구조부터 시작해서 점점 깊이있게 파보려고 한다. 기본적으로 컴퓨터의 구조를 이야기해보라고 하면 넓게 CPU, 주기억장치, 보조기억장치, 입출력장치, 메인보드로 분류를 한다고 한다. CPU에서 연산과 명령들이 나오고 이걸 주기억 장치에 담아두거나 데이터를 가져오고, 보조기억장치에는 데이터를 저장, 삭제등을 진행하고 입출력 장치로 키보드 뚜따뚜따(?)하거나 마우스 딸깍하거나(그래서 내가하던 마비X기라는 게임에서 딸각충이라는 말들이 많았다. 키보드 안쓰고 마우스만 한번 누르면 된다고..) 해서 입력하고 모니터로 보거나 스피커등으로 듣는 입출력 장치가 있고 조립식 컴퓨터 사면 맨날 뭐 하나 잘못꽂아넣는 메인보드가 있다. 이정도는 나도 대충은 들어봤었다. 그렇다면 이들은 실질적으로 어떻게 맞물릴까? 내가 ..

CS/운영 체제 2024.03.15

[운영체제] 주소지정 방식!(이거만 하고 진짜 컴퓨터구조와 운영체제를 봅시다)

서론 실질적 하드웨어를 다루기 전에, 마지막으로 명령어와 주소지정방식에 대해서 정리해봐야겠다는 생각이 들었다. 이후의 기본 구조를 공부할 때 이 부분이 이해가 더욱 잘 되는 것도 있었고, 컴퓨터 구조의 기본을 공부할 때 오히려 이 부분을 알고보니 "아 이래서 이렇구나?"라는 생각이 더 공부하기 재밌었다고 느꼈기 때문이다. 또한, 이전의 소스코드의 어셈블리어의 파생내용이라고 생각했다. 0과 1로는 우리가 명령어를 다 외울 수 없다. 그렇다면 어셈블리어는 어떻게 쓰는걸까? 소스코드에서도 0과 1로 우리가 애플리케이션, 프로그램을 만드는 것은 너무 어렵다. 컴퓨터의 명령어도 마찬가지다. 우리가 학습하고, 필요에 따라 활용하기에는 어셈블리어가 더 이해가 쉽다. 이러한 어셈블리어는 어떻게 생겼고, 우리는 어떻게 ..

CS/운영 체제 2024.03.11

[프로그래머스] PCCP 2번. 석유시추

https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS나 DFS를 이용해 푸는 것은 바로 파악을 했다. 그런데, 이 문제에서 고민해야 할 사항은 따로 있었다. 어떻게 방문한 가로축 지역들을 보관할 것인가? 어떻게 가로축 데이터들을 누적처리할 것인가? 이를 위해 Set, js의 배열의 특성을 활용했다. JS의 배열의 원소는 타입이 같을 필요가 없다는 점과, Set을 이용해 방문한 모든 지역의 가로축 좌표를 담아도 중복이 없게 받을 수 있다는 점..

[운영체제] 소스코드 찍어먹기(부제 : 프로그래머스에서 js가 java보다 느린 이유?)

운영체제에서 무엇을 먼저 포스팅해볼까를 모르겠었다. 그래도, 개발하면서 제일 익숙한 코드와 관련된 부분부터 간단하게 정리하고 지나가는 것이 좋다고 생각했다. 일단 언어는 무엇이 있을까? 개발 트렌드에 있는 자바, 자바스크립트, 파이썬등이 있고, 컴퓨터 관련 전공 대학교 1학년들이 듣는(나때는 그랫어!) C언어가 있다. 확실히 배워보면 안다. 1학년때 C언어를 배우던 나는, 코딩이 이렇게 재미 없는건가 싶었다. 도대체 왜 공부하나 싶다. 그런데, 자바나 자바스크립트로 웹을 만들어보면 참 재밌다는 생각이 들었다. 둘의 가장 큰 차이가 뭘까? 사람이 쓰기 편하냐였다. 저급언어, 고급언어 저급언어와 고급언어가 가지는 차이점이 여기에서 보여진다. 저급언어는 컴퓨터가 직접 이해하고 실행할 수 있는 언어라면, 고급언..

CS/운영 체제 2024.03.06

[Gomterview] 도메인화를 시켜보며...(부스트캠프 후 첫 플젝회고!! 자 두과자!)

6주라는 짧은 기간동안 서비스를 만들기 위한 좌충우돌의 개발이 끝나고, 계속해서 프로젝트를 빌드업시키려는 계획을 가지고 있었다. 또다시 새로운 기능을 만드는 기간도 잠시 있었지만, 이미 있는 기능들을 더 트렌디하게 만들어봐야겠다는 생각이 들었다. 마침 원티드에서 DDD와 이벤트 핸들링에 대해서 공부해본김에, 이를 활용한 프로젝트 리펙토링을 해봐야겠다는 생각이 들었다. 그래서 뭘 했을까? 곰터뷰는 객체간의 협력이 많고, 이로인해 직접참조시에 다른 도메인이 많이 호출된다. 이런식으로, Answer 도메인의 비즈니스로직을 서비스 레이어로 빼냈지만, 질문, 문제집 도메인의 리포지토리를 가져와 사용해야 하는 문제가 있었다. 기능을 새롭게 만드는 과정에서는 그냥 가져다 쓰지 뭐...하면서 썼다. 그런데, 이슈에 대..

Gomterview 2024.03.03

@EventListner

이 어노테이션을 알기 전에, Event가 무엇인지 알아야 한다. 우리가 게임에서 이야기하는 이벤트란, 일정 기간동안 진행하는 행사를 말한다. 개발에서 이벤트를 말할 때, 우리가 생각해야 하는 것은 이 행사라는 단어다. How Event? 이벤트란 무엇인가라고 한다면, 행사라고 바로 앞에 적혀있다. 이를 조금 더 자세하게 말하자면 애플리케이션 상에서 나타나는 사건이다. 프론트엔드 개발자라면 더욱 이해하기 쉽다. onClickEvent, hober와 같은 부분들이 모두 JS의 이벤트를 기반으로 동작하는 함수들이다. 이런 함수들을 잘 읽어보면, 사용자가 일으키는 일련의 사건을 통해 해당 로직들을 동작시킨다는 것이다. 하지만, 나는 백엔드를 공부하고 있다. 이 이벤트를 통해 요청을 받는다면, 이에 대한 응답을 ..

[Network] 짧은 상식, MAC와 IP 주소값은 어떻게 만들어질까?

네트워크 관련 공부를 하면서, 물리적인 장치의 주소는 MAC주소로, 논리적인 주소는 IP로 담는다는 것을 알게 되었다. 그렇다면, 이 MAC 주소와 IP 주소는 어떻게 생겼을까? 그리고 무슨 규칙성을 가지게 될까? 이 부분에 대해서 정리해야겠다는 생각이 들었다. MAC MAC 주소가 만들어지는 원리는 생각보다 단순하다. 주소는 물리적 장치의 주소이며, 이는 Network Interface Card(NIC)라는 하드웨어 장치가 6바이트 주소를 가지고 있게 한다. 이 주소를 통해 물리적 장치의 고유 식별번호가 생기는 것이다. 맥 주소는 하드웨어를 생산할 때 해당 제조사에서 직접 부여하는 방식으로 진행된다(마치 태어나서 주민등록번호를 받고 평생 같이사는 우리같다) 맥 주소는 총 6바이트로 이루어져 있으며, 일..

CS/네트워크 2024.01.25

[Network] TCP/IP를 제대로 풀어봐요 1. TCP/IP를 쓰는 이유 & 네트워크 인터페이스 계층의 프로토콜들

이전 포스트는 https://jangsarchive.tistory.com/158 여기를 참고해주세요! 서론 네트워크를 하나씩 딥하게 찾아보기 이전에, OSI 7계층이 아닌, TCP/IP를 풀어보려고 하는 이유가 뭘까? 웹 개발자로서, 그리고 인터넷 통신에 대해서 조금더 학습하기 위해서 TCP/IP를 풀어보려고 한다. 그렇다면 OSI 7계층과 TCP/IP의 근본적인 차이가 무엇일까? 이를 위해서는 TCP/IP가 무엇인지 자세하게 생각해볼 필요가 있다. 웹 개발에 핵심적인 웹 프로토콜이라는 것이 존재한다. 여기에서 말하는 프로토콜이란, 간단히 '규칙'이라고 하는데, 이는 OSI 7계층 중 응용 계층의 HTTP 프로토콜로 동작하며, 전송 계층의 TCP(HTTP 3/0에서는 UDP로 되어있긴 하다) 프로토콜을 ..

CS/네트워크 2024.01.17

[Network] OSI 7계층 1차 찍먹하기(부제 : 홍대에서 술먹고온 이장희)

분명 나는 학교에서 이 분야에 대해서 학습을 했었다. OSI 7계층에 관한 이야기는 나의 학습이라기 보단, 지금까지 배운 것들을 다시 정리해보기 위한 포스팅일것 같다. 정리를 하고 후에 학습하려했던 본론을 또 정리해봐야겠다. 정리를 위한 나의 예시(실제는 아니다)를 들어서 정리해보았다. 태초엔 0과 1이 존재했다. -> Physical Layer 우리의 컴퓨터가 지금 보았을 때 어떤 화면을 하고있건, 결국 모든 컴퓨터의 데이터는 0과 1로 되어있다. 0과 1이 넘어가면서 원하는 형식의 문자열이 되기도, 특정 신호가 되기도 한다. 그렇다면 이 0과 1을 어떻게 주고받을까? 초등학교/중학교 시절에 결국 모든 전기 신호는 0과 1로, 껐다가 키는 것으로 분류된다고 이야기한다. 이러한 0과 1을 랜선을, 와이파..

CS/네트워크 2024.01.16