개발중 생기는 WHY

동기/비동기, 블로킹/논블로킹에 대해 공부하다가 문득 프로세스, 스레드, 코어에 대해 궁금증이 생겨서 알아보았습니다. 대학생때 OS수업에서 배웠는데 벌써 까먹은... 그럼 각 용어에 대한 설명부터 해보고 본격적인 설명에 들어가겠습니다. 1. CPU 코어 코어는 CPU 내에서 실제적인 연산과 명령 처리를 담당하는 부분입니다. 한 개의 CPU에 여러 개의 코어가 있을 경우, 각 코어는 독립적으로 명령을 실행할 수 있습니다. 듀얼코어, 쿼드코어 등 우리에게 친숙한 단어입니다. 2. CPU 쓰레드 한 코어 내에서 두 개 이상의 명령 스트림(스레드)을 동시에 처리할 수 있는 능력을 말하며 이를 하이퍼쓰레딩 기술이라고 부르기도 합니다. 하이퍼스레딩은 하나의 물리적 코어가 두 개의 논리적 스레드로 작동할 수 있게 합..
개발중에 궁금증 하나가 생겼습니다. 웹의 구조를 완벽히 알고있는 사람들에게는 터무니 없는 궁금증으로 보일지도 모릅니다... 조금만 읽어보시고 이상하다싶음 넘어가주세요. # 내가 알고 있던 지식 백엔드에서 응답을 보내주는 방식에는 크게 API(JSON 같은 데이터만 응답하는경우), html파일 (template engine으로 데이터가 포함된 html파일로 응답하는 경우)가 있다. 전자는 앱 개발에, 후자는 웹개발에 사용. 앱은 html파일이 필요없기 때문입니다. # 궁금증 facebook 같은 웹과 앱이 동시에 작동하는 시스템은 어떻게 백엔드가 만들어진거지? 웹 요청처리와 앱 요청처리를 따로 관리하도록 서버가 2개인건가? chatgpt에 따르면 facebook은 facebook api 하나로 웹, 앱 요..
jvm 동작 방식 (gc 등) build 관리 도구 동작 방식
# 문제를 명확히 정의하고 풀어갈 수 있는 것 현실세계의 어떠한 문제 -> 코드로 해결 알고리즘이 될 수도 있고, 어떤 요구사항을 명확하게 이해해서 짜는 능력 # 품질은 함께 만들어가는 것임을 아는 것 자신의 코드나 지식을 공개하고 소통하는 작은 용기 # 클린코드 작성 올바른 구조화 철학을 갖춘 코드 자신을 포함한 다른사람이 쉽게 이해 할수있도록 # 사용하는 도구에 대한 연구 개발하려는 것에 어떤 도구가 효율적일지 알아야한다. 그럴려면 이전에 다양한 도구들의 특징들을 세세하게 알고 있어야한다. 공부를 할때 도구를 그냥 사용하고 끝낼것이 아니라 어떤 이유로 그 도구를 써야하는지를 정확히 알아야한다. # 복잡한 논리나 추상적인 개념을 상대방이 이해할 수 있게 설명하는 능력 개발을 하다보면 어떤 아이디어가 머..
# Spring 이란? JAVA 웹 프레임워크 (자주 쓰일 만한 기능들을 한데 모아 놓은 클래스들의 모음) JAVA를 이용한 기술은 JSP, MyBatis, JPA 등 여러가지가 있는데 즉, Spring은 이 기술들을 사용하기 편하게한다. Spring은 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단화 오픈소스를 효율적으로 가져다 쓰기 좋은 구조 # Spring가 왜 필요한가, 장점 비지니스 로직에 집중가능 전체 구조를 다루는 프레임워크 다양한 프레임워크와의호환성 복잡한 트랜잭션을 어노테이션 혹은 Xml을 통해 설정하여 개발자가 매번 상황에 맞는 코드를 작성하지 않아도 된다. # 하지만 단점은? 많은 기능을 가졌기 때문에 상당히 무겁다. 기능들을 습득하기위한 노력이 많이 필요하다. 긴 로딩시간 #..
whitem4rk
'개발중 생기는 WHY' 카테고리의 글 목록