반응형

개발 87

리눅스 맛만 보자

리눅스? 그게 뭐야?리눅스는 윈도우처럼 일종의 운영체제이다.위의 이미지를 보면 무려 리눅스의 구성 요소를 한눈에 볼 수 있다.참고로 이미지는 출처를 밑에 남겨놓을 것이다. 🙏 쉘은 유저의 입력을 받아 명령어를 해석한다.커널은 쉘에게 명령어를 전달받아 하드웨어를 제어한다. 한마디로 쉘은 유저와 리눅스 운영체제의 인터페이스 역할을 한다. 기본 명령어를 알아 보자pwd   # 현재 디렉터리 경로 반환cd    # 디렉터리 이동ls    # 파일이나 폴더 목록 조회clear # 프롬프트 초기화mkdir # 디렉터리 생성rmdir # 디렉터리 삭제rm -r # 디렉터리 연쇄 제거.. # 상위 디렉터리.  # 현재 디렉터리/  # 최상위 디렉터리예를 들어 cd ..를 입력하면 상위 디렉터리로 이동하고 cd /를 ..

개발 2024.11.20

[Baekjoon] 1012. 유기농 배추 #S2 #Java

문제차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서로 인접해있는 배추들이 몇 군데에..

[Baekjoon] 30802. 웰컴 키트 #B3 #Java

문제2024년 2월 3일 개최 예정인 온사이트 그랜드 아레나에서는 참가자들에게 티셔츠 한 장과 펜 한 자루가 포함된 웰컴 키트를 나눠줄 예정입니다. 키트를 제작하는 업체는 다음과 같은 조건으로만 주문이 가능합니다.티셔츠는 S, M, L, XL, XXL, 그리고 XXXL의 6가지 사이즈가 있습니다. 티셔츠는 같은 사이즈의 T장 묶음으로만 주문할 수 있습니다.펜은 한 종류로, P자루씩 묶음으로 주문하거나 한 자루씩 주문할 수 있습니다.총 N명의 참가자 중 S, M, L, XL, XXL, XXXL 사이즈의 티셔츠를 신청한 사람은 각각 S, M, L, XL, XXL, XXXL명입니다. 티셔츠는 남아도 되지만 부족해서는 안 되고 신청한 사이즈대로 나눠주어야 합니다. 펜은 남거나 부족해서는 안 되고 정확히 참가자 ..

리액트 핵심만 훑어보자 #7 리액트 컴포넌트의 생명주기

📘 『소플의 처음 만난 리액트』를 읽고 정리한 글입니다. 리액트 컴포넌트의 생명주기가 뭘까?리액트 컴포넌트가 생성되고, 다시 렌더링 되고, 화면에서 사라지기까지의 과정을 말한다. 자세히 알아보자리액트 컴포넌트의 생명주기는 크게 3가지로 나뉜다.마운트컴포넌트의 생성자가 실행되는 과정이다. 사람에 비유하면 출생에 해당한다.생성자에서는 상태를 정의하고 컴포넌트가 렌더링 된다.이때 클래스 컴포넌트에서는 componentDidMount() 함수가 호출된다.참고로 이번 실습에서는 클래스 컴포넌트를 다룰 것이다. 하지만 이미 언급했듯 실제로는 함수 컴포넌트를 대부분 사용할 것이므로 가볍게 실습해 보면 좋을 것 같다. 업데이트컴포넌트의 props가 변경되거나 상태가 변경될 경우, 또는 forceUpdate() 함수를..

개발/리액트 2024.11.17

깃 작업 디렉터리의 상태를 확인해보자

깃 작업 디렉터리의 상태를 확인하려면 어떤 명령어를 사용해야 할까?결론적으로 git status 명령어를 사용하면 된다. 당연히 cd 명령어를 통해 상태를 확인할 작업 디렉터리로 이동해야 한다. 해당 명령어로 어떤 상태 정보를 얻을 수 있을까?현 작업 브랜치를 알 수 있다.현재 작업 중인 브랜치명이 무엇인지 알려준다. 스테이징 상태를 알 수 있다.추적되지 않는 파일의 존재 여부와 추적 중인 파일 중 수정된 파일이 스테이징 상태에 있는지 여부를 알 수 있다.그리고 스테이징 상태의 파일들이 수정됐는지, 새로운 파일인지, 삭제됐는지를 표시한다.여기서 추적중인 파일은 깃에 의해 관리되고 있는 파일을 의미한다.커밋 중단 상태를 알 수 있다.충돌로 인해 머지되지 않은 파일 목록을 알 수 있다. 명령어를 입력해보자명..

개발/깃 2024.11.16

깃 .gitignore 파일 무시하고 스테이징 하자

.gitignore 파일은 특정 파일의 스테이징 여부를 설정할 수 있다.깃을 통해 며칠 전 작성한 도커 파일과 도커 컴포즈 파일을 깃허브에 업로드하려고 했다.그런데 git add . 명령어를 입력해도 아무런 파일도 스테이징 되지 않았다.알고 보니 .gitignore 파일에 *.yml 파일을 스테이징 하지 않도록 적어두었던 것이다.*.yml 파일을 스테이징 하지 않도록 했던 이유는 프로젝트 내 application.yml에 중요 정보가 적혀 있기 때문이었다.  그럼 도커 파일과 도커 컴포즈 파일은 어떻게 스테이징 할까?구글링을 하기 전, 너무 피곤해서 우리들의 친구 챗 지피티에게 다음과 같이 물어보았다. git add -f 명령어를 입력하면 된다고 한다.가끔 챗 지피티가 이상한 답변을 하는 경우도 있으므로..

개발/깃 2024.11.15

자바 디자인 패턴을 알아보자 #3 Adapter 패턴

📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Adapter 패턴이란?가령 직류 12 볼트로 동작하는 노트북을 교류 100 볼트 AC 전원에 연결한다고 해보자. 그때 우리는 AC 어댑터라는 장치를 사용한다.제공된 것과 필요한 것 그 사이에서 AC 어댑터가 Adapter 역할을 하는 것이다.이렇듯 Adapter 패턴은 프로그래밍 차원에서도 이미 제공된 코드를 그대로 사용할 수 없을 때 필요한 형태로 변환하여 이용하는 경우 사용한다. 그래서 Adapter 패턴은 Wrapper 패턴이라고도 한다.Adapter 패턴은 두 가지 방법으로 구현할 수 있다.클래스 상속을 이용하여 중간 역할을 수행한다.중간 역할을 인스턴스에게 위임한다. 예제 프로그..

자바 디자인 패턴을 알아보자 #2 Iterator 패턴

📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. Iterator 패턴이란?// 반복문for (int i = 0; i Iterator 패턴은 반복문에서 사용되는 변수 i의 기능을 추상화하여 일반화한 패턴이다.해당 패턴은 무언가가 많이 모여 있을 때 이를 순서대로 가리키며 전체를 검색하고 동일 처리를 반복한다. 예제 프로그램을 살펴보자위 다이어그램은 업무에 해당하는 하위 업무명을 차례대로 표시하는 프로그램을 나타낸다.업무와 하위 업무는 그저 내가 진행하는 토이 프로젝트 주제다. 프로젝트는 업무로 구성되어 있고, 각 업무는 하위 업무로 구성할 예정이다.참고로 실제 책에서는 책과 책장을 도메인으로 하여 설명하였다.  public interfac..

자바 디자인 패턴을 알아보자 #1 개요

📗 『JAVA 언어로 배우는 디자인 패턴 : 쉽게 배우는 GoF의 23가지 디자인 패턴』를 읽고 정리한 글입니다. 이해를 돕기 위해 책에서 제시하는 힌트디자인 패턴이 클래스 라이브러리 자체는 아니다. 클래스 라이브러리 안에서 디자인 패턴이 사용되는 것이다. 디자인 패턴을 이해하고 있다면 처음 보는 클래스 라이브러리라고 하더라도 역할을 이해하는 데 도움이 된다. 프로그램을 완성품으로 보지 않는다. 디자인 패턴의 목표 중 하나는 프로그램의 재사용이다. 그러므로 프로그램을 완성하는 것이 아니라 끝없이 기능을 확장해 가는 것이다.다음과 같은 물음을 항상 갖고 있어야 한다."어떤 기능이 확장될 가능성이 있는가?""기능을 확장할 때 어느 클래스를 수정해야 하는가?""수정할 필요가 없는 것은 어느 클래스인가?"다이..

리액트 핵심만 훑어보자 #6 상태

📘 『소플의 처음 만난 리액트』를 읽고 정리한 글입니다.  리액트는 상태(State)를 관리해야 한다다음 포스팅에서 다루게 될 리액트의 생애주기를 공부하기 위해서는 먼저 상태에 대해서 알아야 한다.상태는 리액트 컴포넌트의 변경 가능한 데이터이며, 상태가 변경되면 컴포넌트가 재렌더링된다.그렇기 때문에 상태를 정의할 때는 꼭 렌더링이나 데이터 흐름에 사용되는 값만 상태에 포함시켜야 한다.  상태를 무분별하게 정의한다면 애플리케이션의 성능을 저하시킬 수 있기 때문이다.상태는 따로 복잡한 형태가 있는 게 아니라 하나의 자바스크립트 객체이다. class LikeButton extends React.Component {      constructor(props) {       super(props);       ..

개발/리액트 2024.11.11