분류 전체보기

Go

[Go] $GOPATH/go.mod exists but should not 오류

Go언어 공부를 하다가 이런 오류를 만났다.. 분명 직전 코드까지 잘 실행되다가 어찌저찌 검색하다 go mode tidy라고 입력하면 된다고해서 했는데 계속 저런다. 이유는 GOPATH (터미널에 "go env" 라고 타이핑할시 GOPATHE등 많은 정보가 나옵니다) 로 지정한 곳에 go.mod 파일이 있으면 안되는다는 것! 해결한 방법은 GOPATH로 등록된 폴더에 go.mod가 있길래 rm go.mod로 go.mod파일을 지우고 src안에 현재 작업할 or 분기하지 않은 폴더 즉 main 폴더에 go mod init으로 go.mod를 만들어줬더니 해결이 됐다 나는 이렇게 넣어다. 다행이 참고할 자료가 하나 있어서 금방해결했다.. 참고한 자료 https://velog.io/@artelee/%EC%98%..

Go

[Go] Go의 특별한 인자값 전달

오늘은 Go의 인자값 전달과 어떤 형식으로 인자의 값들을 받고 형식을 지정하는지 그리고 중요한 키워드 defer에 대해 알아보겠습니다 인자값 전달 & 받기 코드부터 먼저 보겠습니다 package main import "fmt" func multply(a int, b int) int { return a + b } func multply2(a , b int) int { return a + b } func main() { fmt.Println(multply(1, 9)) } 위 처럼 두가지 형식이 가능합니다 원래 알고 있던 언어들에 type 지정과 다르게 변수 뒤에 type을 지정해줍니다 보이듯이 func앞에 type을 지정하는 게 아닌 func에도 뒤에 type을 지정해줍니다 multply2처럼 묶을수도 있구..

Go

[Go] Main Package와 접근 제한자 & 변수

오늘은 Go의 Main Package에 대해 다뤄보도록 하겠습니다 이 글은 NomadCoders의 영상을 보고 정리한 글입니다. 우리가 원래 알고있던 언어들의 main의 역할은 시작점이라는 것입니다. 모든 언어가 그렇듯이 Go도 특별하지는 않습니다 main이 시작점이죠 C에서 헤더의 를 사용하듯이 Go에서는 아래처럼 사용할 뿐입니다 Main package main import ( "fmt" ) func main() { fmt.Println("Hello Wrold") } 하지만 오픈소스를 만든다면 컴파일을 하지 않고 다른사람들과 같이 쓰기 때문에 main.go는 필요가 없겠죠? main는 이렇듯 컴파일을 위해서 필요한 것입니다! 그리고 출력문을 작성하기 위해서는 fmt.Println("~"을 타이핑하는데 ..

CS/네트워크

[네트워크] JWT(Token)를 위주로 Cookie & Session 파헤치기

진행하던 토이 프로젝트에 Spring Security + JWT를 이용해서 로그인을 구현했었는데 이번에는 단순 구현뿐 아니라 JWT에 대하여 좀더 공부해보고 하는 생각으로 글을 씁니다. 먼저 가장 중요한 JWT의 정의에 대하여 알아보아야 겠죠? JWT란 JWT(Json Web Token)의 약자로 Json 기반의 Web Token입니다. 발급된 토큰값을 Json 객체로 변환 그 후 Clien에게 전송해주는 것을 말하는데요 음 그런데 Jwt가 무엇인지는 대충 알겠는데 왜 JWT를 쓰는 걸까요? 그 전에 Token을 발급해주는 이유는 무엇일까요? 그냥 DB에 ID/PW만 저장하고 Login할 때마다 확인해주면 안될까? 그러면 DB가 해킹당하면.. 큰 문제가 발생하고 또 로그인을 유지하려면 사용자가 API를 ..

스프링

[Spring] 자바의 대표적인 빌드 관리 도구 Maven vs Gradle 차이

안녕하세요 오늘은 Spring initializr로 스프링 부트 프로젝트를 생성할 때 선택하는 Maven과 Gradle의 차이를 알아보려고 합니다. 자 먼저 Maven과 Gradle의 차이를 알아보기 전에 우리는 빌드 관리 도구란 것이 무엇인지 알아볼 필요가 있습니다. 빌드 관리 도구란? 빌드 관리 도구란 프로젝트에서 필요한 파일들(xml. properties, jar)을 자동으로 인식하여 빌드해주는 도구입니다. 소스 코드를 컴파일, 테스트 ,정적분석을 통하여 실행가능한 어플리케이션으로 빌드해주죠 그리고 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리해줍니다. 지금에서야 몇줄 추가하는 걸로 라이브러리를 자동으로 다운로드 해주지만 옛날에는 직접 라이브러리를 다운받아 수동으로 추가해줘야 했다..

스프링

[Spring] Spring이란 무엇인가?

오늘부터 스프링 공부를 하면서 만난 문제점들과, 앞으로 공부하는 내용을 공유하고자 합니다. 시작하기에 앞서 내가 뭘 공부하는지는 알아야 하기 때문에 스프링이 무엇인지 부터 알아봅시다 탄생 배경 엔터프라이즈급 시스템이 실패하는 이유 "복잡성을" 보고 해결하기 위해 나온 프레임워크입니다. Spring이 등장하기 전 EJB(Enterpirse JavaBeans)을 사용했는데 하나의 기능을 구현하기 위해 상속, 인터페이스 구현 등 의존도가 너무 커짐에 따라 로드 존슨의 예제코드등을 통해 만든 프레임워크이다. 2002년 로드 존슨이 EJB의 문제점을 지적하면서 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000 라인 이상의 기반 기술 예제 코드를 선보이면서 시작되었다 이후 유겐 휠러와 얀..

CS/운영체제

프로세스간 채팅 구현해보기

OS수업을 듣던중 교수님께서 과제를 하나 내셨다 과제는 "채팅 프로그램" 멀티 프로세스를 이용해서 간단한 채팅 프로그램을 구현하는 것이었다. 이렇게 힌트를 주셔서 3일 정도 열심히 구글링하고 생각하면서 풀었다, 처음에는 프로세스가 뭔지도 잘 모르는 상태여서 이해하는데 오랜 시간이 걸렸고 구현한 다음 또 코드를 이해하는데 시간을 보냈다. ,, 잡다한 얘기는 여기까지 하고 풀이에 들어가보자! 하나 하나 설명하면서 이해하면 좋겠지만 너무 오래 걸릴수도 있고 글이 엄청 길어질 거 같기에 바로 코드부터 보겠다. 나는 보통 main부터 출발해서 그다음 구현한 함수들을 보는 편이기에 main부터 출발하겠다. C로 프로세스를 처음 짜본다면 밑 링크를 참고하면 좋을 것 같다. https://badayak.com/entr..

Sleeg
'분류 전체보기' 카테고리의 글 목록 (6 Page)