본문 바로가기

Portpolio/webdev_tip89

eclipse 한꺼번에 주석처리하는 방법 예시를 위해 무척 길고 비효율적인 코드를 하나 가져왔다. 이 긴 코드를 한꺼번에 주석 처리하고 싶은데, 시간이 많이 걸린다. 그럴 때는 ctrl + / 단축키를 사용하자 2023. 11. 15.
리눅스 백그라운드 프로세스 & 리눅스 터미널에서 백그라운드 프로세스는 터미널과 독립적인 상황에서 실행중인 프로세스를 의미한다. 일반적으로 리눅스이 터미널 아니어도 데스크탑에서 키를 입력하는 과정이나 네트워크 연결, 데이터 송수신 등의 인프라적 과정이나 프로그램의 빠른 실행 등을 위해서 자체적으로 내부에서 작은 프로세스를 실행시키는 백그라운드 프로세스를 실행하기도 한다. 이러한 백그라운드 프로세스가 과도하게 설치되었을 경우에 컴퓨터가 느려지는 원인이기도 하다. 다시 본론으로 돌아와서 프로세스를 실행시키고 그 프로세스가 실행시키는 동안 bg라는 명령어를 실행시켜서 그 명령어가 터미널의 상태와 상관없이 계속 실행되도록 해보자. gzip largefile.txt 이 명령어는 gzip이라는 명령어를 사용해서 주어진 텍스트 파일을 압축하는 명령.. 2023. 11. 8.
ubuntu에서 c 헤더파일 여는 법 운영체제를 공부 중인 상황에서 시스템 프로그래밍을 하게 될 일이 많은데 아무래도 버추얼박스를 깔아서 가상으로 우분투 리눅스를 설치하는 방법을 사용한다. 기본적으로 리눅스는 c언어를 컴파일함에 있어서 gcc 컴파일러를 사용하는데, 기본적으로 헤더 파일이 윈도우에서 없는 것들이 매우 많고 차이가 많아서 헤더 파일을 열어 볼일이 많다. 윈도우에서 비주얼 스튜디오를 통해 c언어 프로그래밍을 할 때는 ctrl을 누른 상태에서 좌클릭을 하면 헤더 내용이 나오는데 리눅스에서는 어떻게 찾아서 확인할 수 있는지 알아보자. 우선 터미널을 열어서 cd usr/include 를 친다. 그리고 ls를 치자. 그러면 해당 디렉토리에 있는 파일을 쫙 나열해준다. 나는 지금 스레드 주소 공간을 확인하는 코드를 짜고 있다고 가정하자... 2023. 10. 27.
vi 편집기를 알아야 하는 이유 요즘의 편집기를 보면 굳이 vi에 대해 알아야 하는지라는 생각이 들 수도 있다. 사용법도 익숙치 않고 무엇보다 자주 쓸 일이 없는 경우가 대다수이다. 그러나 이 vi 에디터는 중요한 툴이다. 우선, 운영체제와 같은 시스템에서 코딩을 해야 할 때 확실한 툴이 되어준다. 아무리 웹개발을 한다고 하더라도 일정 수준 이상으로 성장하여 중급 개발자가 되기 위해서는 본인 그리고 본인의 팀이 개발하는 서비스가 운영체제와 같은 시스템에서 어떻게 영향을 주는지를 고려하고 판단할 줄 알아야 한다. 그 때 vi와 같은 툴을 익숙하게 만드는 것은 분명한 무기가 된다. 그리고 익숙해지면 속도가 빨라지고 불필요하게 마우스 동작을 할 필요성이 급감한다 직관적인 디스플레이가 부족해서 인지하며 신경쓸 부분이 많지만 그 말을 돌려서 생.. 2023. 10. 22.
리눅스의 폴더 구조 리눅스를 사용하다 보면 터미널 상에서 리눅스의 폴더 이름에 대해 알아볼 일이 많은 데 이번 기회에 정리해 놓는다. 정식 명칭으로는 파일 계층 구조(FHS)라고 한다. 1. root(/) 전체 파일 시스템의 기본 계층이자 최상층이다. 2. bin(/bin) 필수 명령이 포함된 바이너리 형식의 파일이다. (ls, ping, grep....) 3. boot(/boot) 부트 로더 파일이 들어있다. 4. dev(/dev) 필수 장치 파일, 터미널이나 그러한 것이 해당된다. 5. etc(/etc) 모든 프로그램에 필요한 구성 파일이 포함되어 있다. 6. home(/home) 개인 파일을 저장하는 홈 디렉토리 의미한다. 7. lib(/lib) /bin/이나 /sbin/의 바이너리에 필수적인 라이브러리이다. 8. m.. 2023. 10. 20.
웹개발자가 컴퓨터구조를 알아야 할까? 웹개발자를 지망하는 전공자 혹은 비전공자 중에서 컴퓨터 구조와 같은 하드웨어 관련 과목에 대한 필요성을 묻는 질문글들이 꽤 많이 보였다. 프론트엔드 개발자보다 백엔드 개발자 지망생 중에 그런 글들이 꽤 많은 것 같다. 사실 초급 개발자 수준에서는 글쎄라는 의문점이 들 수 밖에 없다. 그러나, 기본적으로 프로젝트를 진행하는 과정에서 컴퓨터의 물리적인 구조를 모르면 어느 시점에서는 성장하기 어렵다는 의견들이 대다수이다. 더 나은 프로그램을 만들기 위해서. 웹페이지 상에서 자바스크립트 코드는 스스로 실행하지 않는다. 크롬을 예로 들면, V8이라는 엔진이 JIT컴파일을 수행한다. 이러한 과정은 기본적으로 컴퓨터의 구조 더 나아가 메모리와 cpu에 대한 깊은 이해를 요구한다. 이러한 이해 없이 더 나은 프로그램을.. 2023. 10. 18.
추천강의) 혼자 공부하는 컴구조/OS https://youtube.com/playlist?list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&si=ebHfBC1hedKKP1Bz [컴퓨터 공학 기초 강의] 혼자 공부하는 컴퓨터 구조+운영체제 강민철 저자님과 함께하는 『혼자 공부하는 컴퓨터 구조+운영체제』 강의입니다. 다른 입문서에서는 알려주지 않았던 진짜 컴퓨터 공학 지식을 만나보세요! 👨‍🏫 누구를 위한 강의인가요? - www.youtube.com IT업계에서 소프트웨어 개발자를 한다고 해도 결국 어느 정도 단계 이상으로 올라가려면 결국 하드웨어 단계에 지식이 필요할 수 밖에 없다 비전공자는 따로 복수전공을 하지 않는 한 학부 시절 이런 지식을 공부하는 것이 쉽지 않고, 전공자라도 제끼고 안들은 사람들은 배웠어도 기억이 .. 2023. 9. 29.
public static void main(String[] args)의 의미 자바 프로그램을 작성하다 보면, C언어의 main 함수와 같은 역할을 하는 함수가 public static void main(String[] args){ //작성부분 } 와 같은 형태를 하는 것이 있는데, 습관적으로 쓰기는 하지만 정확하게 알지는 못했던 것 같다 약속이라고 정해놨다니까 따르는 것이 맞지만 그렇게 정한 이유는 알고 있는 것도 나쁘진 않겠다 우선 public은 자바 프로그램 자체가 항상 공개적으로 열려있는 메서드를 찾아서 실행하기 때문이다. static void main은 진입점을 의미한다. 우선 static 메서드는 객체 없이도 실행할 수 있다는 특성을 가지고 있다. 시작점의 메서드는 객체 생성 없이도 생성할 수 있어야 하기 때문에 static 메서드로 실행된다. void는 main 메서드.. 2023. 7. 20.
colab의 폴더 이름은 무슨 의미인가? 온라인 환경에서 python 프로그래밍을 하면서 colab을 한번쯤은 사용해 보게 된다. 그렇다면 colab 런타임에 연결하면서 아래와 같은 폴더들을 보게 된다. 조금은 생소한 이름의 폴더들이 구비되어 있는 것을 알 수 있다. 0. 코랩 = 구글드라이브 + 도커 + 리눅스 코랩은 구글에서 제공하는 우분투 컴퓨터를 사용자에게 할당해주는 시스템이다. 그래서 특별히 사용자가 로컬 저장소에 ide 프로그램을 설치하거나 하지 않아도 온라인 상에서 프로그래밍 할 수 있게 해주는 시스템이다. 1. 파일 구조의 리눅스와의 유사성 그렇기 때문에 대체적으로 리눅스의 파일 구조와 매우 유사한 형태를 보인다. 물론 완전히 같은 형태는 아니지만, 결국 코랩 역시 리눅스를 응용한 시스템이기 때문에 어느 정도 이해가 수반도리 때 .. 2023. 6. 16.
git과 linux의 관계 소프트웨어 프로젝트를 하다보면 한번쯤은 git이라는 시스템에 대해서 들어보거나 사용해봤을 것이다. 적어도, github라는 서비스를 이용해봤을 것이다. 그렇다면 이 git은 언제부터 사용되었고, 왜 만들어졌는가 처음에 리눅스 커널을 개발하고 관리하는 과정에서 인프라의 부족함을 체감한 Linus Torvalds가 만든 시스템이 바로 git이다. 애초에 만들어진 배경 자체가, 리눅스 커널 관리에 특화해서 만든 시스템이다보니, 당연히 리눅스의 특성이 많이 포함되어 있다. 일례로 git에서 어떤 작업을 수행할 때 os를 막론하고 git bash라는 프로그램을 사용하는데 리눅스 명령어를 알고 있어야 활용을 할 수 있다. 이 프로그램은 아주 편리하다. cli 환경에서 수많은 작업을 할 수 있도록 도와주는 프로그램이.. 2023. 6. 16.