고루틴(goroutine)에 대해서고루틴은 경량 스레드로 함수나 명령을 동시에 실행할 때 사용한다. 프로그램 시작점인 main() 함수 역시 고루틴에 의해서 실행된다. 스레드는 프로세스 안에서 구성되는 작업 단위다. 하지만 Golang에선 CPU 코어마다 OS 스레드를 하나만 할당해서 사용하기 때문에 컨텍스트 스위칭 비용이 발생하지 않는다. Go 키워드를 이용해 고루틴 생성package mainimport ( "fmt" "time")func PrintHangul() { hanguls := []rune{'가', '나', '다', '라', '마'} for _, v := range hanguls { time.Sleep(300 * time.Millisecond) fmt.Printf("%c ", v) }}fu..
캡스톤 프로젝트를 진행하면서 한 가지 발견한 사실을 언급한다. 이전까지 나는 Mediaquery.of(context).size를 통해서 현재 사용자의 화면에 대한 너비, 높이 값을 가지고 왔다. 해당 값에 대한 비율로 위젯을 표현했었다. 이는 곧 프로젝트에 큰 재앙을 주었다. 왜냐하면 MediaQuery.of(context) 안에 화면과 관련된 여러 속성들이 있다.final height = MediaQuery.of(context).size.height;final width = MediaQuery.of(context).size.width; 이 속성들에 변화를 감지하면 화면 상의 위젯들은 rebuild된다. 만약 rebuild 되는 화면에 네트워크로 수 많은 이미지를 다운로드한 경우 다시 다운로드 해야되는..
이번에 알아볼 건 Flutter 상태 관리 패키지 가장 간편하고 쉽게 적용 가능한 GetX 패키지다. Riverpod, Provider 라는 상태 관리 패키지를 사용해봤지만 GetX 만큼 간편하진 않았다. 물론 GetX는 Flutter에서 추구하는 어플리케이션 아키텍처(Stateful Widget 사용 X, BuildContext 사용 X ...)를 위배하기에 공식적으로 Flutter에서 밀어주진(?) 않는 것 같다. 그럼에도 pub.dev 에서 상태 관리 패키지 중에서 LIKES가 1등이다. 얼마나 간편하고 좋은지 알아보자 GetX 상태관리의 중요 매커니즘GetX 패키지는 전역적으로 관리되는 데이터를 대상으로 Stateless 위젯에서도 상태의 변화에 따른 자동 업데이트가 가능하도록 한다. 이는 다음..
개요캡스톤 디자인 프로젝트를 진행하면서 깨닫고 중요한 부분인 프로젝트를 어떻게 설계하고 구현(구체화)하였는지 적어보려고 한다. 먼저 우리 학교 컴퓨터공학과 캡스톤 과목은 1년 동안 진행되며 하나의 어플리케이션을 개발한다. 우리팀이 개발 중인 어플리케이션은 사진 위치 기반 모바일 어플리케이션이다. 타겟 플랫폼은 안드로이드이며 서비스 대상자들은 자연 사진, 동물 사진 찍는 것을 즐기는 모든 연령대의 사람들이다. 우리가 선택한 프론트엔드 프레임워크는 Flutter이다. 플러터는 dart 언어를 사용하며 Google에서 개발한 프론트엔드 프레임워크다. 플러터를 처음 배울 때 프로그래밍 언어에 친숙하지 않아 많은 어려움 있었던 걸로 기억난다.(함수식 표현 , 의존성 주입 ...) 화면 구성이나, 디렉토리 구조 ..
github 사용자 계정 등록 git config --system(/etc/gitconfig 파일)시스템의 모든 사용자와 모든 저장소에 적용되는 설정git config --global(~/.gitconfig, ~/.config/git/config 파일) 특정 사용자에게만 적용되는 설정, 특정 사용자의 모든 저장소 설정에 적용git config --local(.git/config 파일)이 파일은 Git 디렉토리에 있고 특정 저장소에만 적용됨 git config --global credential.helper cachegit 인증 캐시 활성화 Remote 관련 명령어git remote add 원격 저장소명> 깃허브 주소>원격 저장소 추가git remote --verbose연결된 원격 저장소 확인git r..
스프링부트 서버를 EC2에 올려 사용하기 위해 작성한 글입니다. 바로 도커 파일부터 보겠습니다.FROM bellsoft/liberica-openjdk-alpine:18# or# FROM openjdk:8-jdk-alpine# FROM openjdk:11-jdk-alpineCMD ["./gradlew", "clean", "build"]# or Maven# CMD ["./mvnw", "clean", "package"]VOLUME /tmpARG JAR_FILE=build/libs/*.jar# or Maven# ARG JAR_FILE_PATH=target/*.jarCOPY ${JAR_FILE} app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]해당 도커 파일은 스..
안녕하세요! 이번 포스팅에선 IP에 대해 조금 더 자세히 알아보는 시간을 가지겠습니다.목차1. IP의 종류 - 공인 IP와 사설 IP - NAT Network Address Translation - 고정 IP와 유동 IP 2. 유동 IP 할당 방식 - DHCP Dynamic Host Configuration Protocol 1. IP의 종류인터넷 도입 초창기엔 인터넷에 접속하는 모든 호스트와 라우터에 고유한 IP주소를 고정적으로 설정했어야 했습니다. IP 주소를 할당하는 기관으로부터 IP주소를 할당받지 못하면 인터넷 접속이 불가했습니다. IPv4 주소 체계에서 인터넷 보급이 활성화되면서 IP 주소가 부족해지기 시작했기에 필요한 곳에 필요한 때에 필요한 ..
이번 글에선 네트워크에서 필수적인 개념인 IP에 대한 전박적인 이야기를 합니다. IP 주소의 구성과 IP 주소 할당 방식에 대한 내용을 담습니다. 본격적인 글을 시작하기 전 컴퓨터공학과 학부생이 작성했음을 유의해주실 바랍니다.목차1. IP(Internet Protocol)이란?2. IP 주소 구성(IPv4) - 클래스 방식 - 서브넷 마스크 방식 1. IP란 무엇인가?IP 주소 IP주소는 호스트나 네트워크 장비를 식별할 수 있게 합니다. 즉 인터넷에 접속한 컴퓨터와 라우터에 고유한 IP주소를 할당합니다. 그렇다면 IP 주소를 직접적으로 부여하는 공공 기관은 IANA(인터넷 할당 번호 관리 기관)에서 하며 각 지역별 네트워크 세부 주소를 할당하는 데이터 센터가 존재합니다.(NIC) ..
- Total
- Today
- Yesterday
- 사토시 나카모토
- docker cli
- c++
- 깃허브
- CIDR
- 매크로함수 단점
- 범위지정연산자
- Flutter
- GETX
- Linux
- vim
- 매크로함수 장점
- C
- merge conflict
- Docker
- github
- 비토코인
- 플러터
- 절차지향언어
- 슈퍼넷팅
- OSI 7계층
- 디폴트값
- 상태관리
- 이중 지출
- 리눅스
- 매크로함수 소괄호
- git cli
- 빌드과정
- namespace 중복
- 매크로 상수
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |