전체 글

I work diligently to become lazy.
MVC 는 Model, View, Controller 이 세가지를 줄여 표현한 약어 이다. MVC 에 대해 검색을 해보면 '패턴' 이라는 말을 같이 볼 수 있다. 패턴이라는 것에 대해 쉽게 설명하면, 예로부터 전해 내려오는 가장 이상적인 방법 이라고 할 수 있다. 패턴에 대해 찾아보면 GoF 라는 것도 볼 수 있는데, GoF 는 Gang of Four 의 줄임 말로 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 네 사람을 뜻한다. GoF 와 패턴이 무슨 상관이냐 할 수 있겠지만, 앞서 얘기한 가장 이상적인 방법에 대한 표준을 정리하신 분들이다. 다시 MVC 에 대해 얘기하면, 보통 MVC 를 MVC1 과 MVC2 로 구분해서 얘기 한다. 하지만 사실..
정리는 inflearn 사이트에 백기선님이 만든 '스프링 웹 MVC' 를 보면서 하지만, 강의 내용을 그대로 정리하는 짓은 하지 않는다. 전체적인 흐름을 참고하지만 필요에 따라 토픽을 나누거나 합쳤으며, 되도록 눈으로 보기만 해도 이해할 수 있을 정도로 정리하는 것을 목표로 한다. 작성중인 모든 내용에 대해 마음에 들때까지 반복해서 읽고 수정하기 때문에 지금 보고있는 내용이 언제라도 바뀔 수 있다. 목차 1. Spring MVC 동작 원리 1.1 MVC 와 Legacy Servlet Application 1.2 Spring IoC Container 연동 1.3 Spring MVC 연동 (Root & Servlet ApplicationContext) 1.4 DispatcherServlet 기본 동작 원리 ..
echo 를 시용해서 서버를 만드는 것을 super easy 하다. main.go 파일을 다음과 같이 수정하자. package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/", handleHome) e.Logger.Fatal(e.Start(":1323")) } func handleHome(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") } 그리고 실행하면 다음과 같이 실행 결과가 출력 되고, 1323 포트를 통해 접속할 수 있다. 정상적으로 실행 되는것을 확인하긴 했지만, myScraper 를 전혀 사용하고..
이번에는 go echo 서버를 만들어 본다. 본격적으로 만들어보기에 앞서 필요한 사전 작업들을 해보자. 우선 main package 에 있던 main function 을 다른 package 로 만들고, 실행이 아닌 호출 가능한 형태로 변경하려 한다. 우선 myScrap 라는 이름의 폴더를 만들고 그 안에 main.go 파일을 옮긴다. 그리고 main.go 파일의 이름을 myScrap.go 로 이름을 변경한다. myScrap.go 가 된 파일을 열고 1. package 이름 변경 2. main function 이름을 myScrap function 으로 변경 3. 전역변수 baseURL 을 myScrap function 내부로 이동 4. myScrap function 에 string 타입의 변수 term 을..
사실 이 전에 작성한 코드로 URL Checker 구현이 끝났지만 출력하는 부분이 없었다. 앞서 다른 예제에서 goroutine 으로 실행한 결과를 channel 을 통해 수신하도록 '
지금까지 goroutine 에 대해 알아보았으니 'main.go' 파일에 작성했던 URL Checker 를 goroutine 을 사용해서 개선해보자. package main import ( "errors" "fmt" "net/http" ) // channel 을 통해 주고 받을 데이터 타입으로 사용 할 struct 선언 type result struct { url string status string } // 사용자 정의 error var errRequestFailed = errors.New("Request failed") func main() { // url 접속 결과를 담을 비어있는 map 선언 results := make(map[string]string) // channel 생성 c := make(..
앞서 goroutine 과 관련하여 기억해야 할 것을 정리하면 '
이번에는 Channel 로 주고 받는 데이터를 bool 타입이 아닌 string 타입을 사용해보자. 아래는 수정한 main_goroutine.go 파일이다. package main import ( "fmt" "time" ) func main() { // 길이 2 의 문자열 배열 생성 people := [5]string{"nico", "nimkoes", "go", "java", "spring"} // bool 타입을 주고받을 수 있는 channel 생성, c 는 임의의 이름으로 사용 가능 c := make(chan string) // 반복문을 실행 하면서 두 개의 goroutine 을 실행 for _, person := range people { // channel 을 같이 전달 go isSexy(pers..
nimkoes
한칸짜리책상서랍