분류 전체보기
-
[Java]2차원 배열이란?Java & Kotlin 2020. 9. 2. 20:39
1. 2차원 배열 int[] array = new int[2]; 위에서 보는 코드는 그냥 배열입니다. 2개의 값이 들어갈 수 있는 평범한 배열을 만들었는데요. int[][] array2 = new int[2][3]; 위의 코드를 봅니다. 뭔가 이상합니다. 괄호가 하나가 더 생겼습니다. 대체 어떻게 된 일일까요? 위의 그림을 봅니다. 총 6개의 값을 넣을 수 있는 공간이 생겼습니다. 2차원 배열입니다. 배열의 배열입니다. 즉 배열이 합쳐져서, 다시 배열을 이루는 것입니다. 정확히는 int 정수 3개를 넣을 수 있는, 배열 2개를 만드는 것 입니다. 즉 가로 1 = 배열 1개라고 생각하시면 됩니다. 좀 더 쉽게 생각을 해보자면, 엑셀처럼 순서대로 [2][3]을 가로축, 세로축이라고 생각하시면 됩니다. 가로(..
-
(Spring, MyBatis)첫 CRUD 게시판 만들어 본 개발 후기개발 완료 2020. 8. 29. 17:11
해당글은 첫 CRUD 게시판을 만들었었던 후기이며, 2021년 현재 기준으로 매우 허접합니다. REST API를 적용한 좀 더 세련된(?) 코드는 아래 깃허브 저장소를 참고해주세요. https://github.com/YeonCheolGit/springboot-restful-api-board 1. 서론 그동안 무식하게 이론만 공부하는 방법으로 공부를 했었습니다. 그러던 어느 날 경험 삼아 카카오 인턴을 지원이라도 해보자는 생각으로 지원서를 작성하던 중 "그동안 개발 혹은 프로젝트를 하던 중 어려웠던 점과 해결했다면 어떻게 해결했는지 작성하시오"라는 질문을 작성해야 했습니다. 저는 4학년이지만, 컴퓨터공학과 복수전공으로서 고작 1학기밖에 되지 않아 프로젝트나 스스로 개발을 해본 적이 없습니다. 학교에서는 운..
-
[Spring Framework] IoC container / ScopeSpring Framework 2020. 7. 27. 15:43
오늘은 스프링 프레임워크의 핵심인 IoC container에 대해서 공부하려고 합니다. 1. IoC container IoC container는 IoC, 즉 Inversion of Control(제어의 역전)을 가능하게 해주는 컨테이너 입니다. 이 컨테이너는 빈이 생성될 때 의존성을 주입하고, 빈들의 인스턴스화를 해주는 빈을 관리하는 컨테이너 입니다. 하지만 스프링 API를 보시면 IoC Container가 어떤 클래스나 인터페이스로 존재하는 것이 아닙니다. 즉 IoC를 가능하게 해주는 컨테이너라는 패턴 혹은 프로그래밍 기법이라고 생각하시면 됩니다. 그렇다면 실질적으로 스프링 프레임워크는 어떤 인터페이스나 클래스를 정의해서 빈들을 관리하고 있을까요? 2. BeanFactory interface 스프링 프..
-
웹 서버란?Spring Framework 2020. 7. 4. 17:50
1. 웹이 동작하는 방법 굉장히 귀여운 그림이 위에 있죠? 왠 졸라맨 같은 사람이 클릭을 하니, 사용하는 브라우저에서 Web Server로 HTTP Request(요청) 전송을 합니다. 이때 Web Server는 해당하는 HTTP Response(응답)를 다시 보내주는데요. 쉽게 이야기해서 브라우저와 대화를 하는 것입니다. 브라우저가 뭔가 요청했으니, Web Server는 대답을 하는 것입니다. 여기서 HTTP는 인터넷 환경에서 데이터를 주고받을 수 있는 통신 규약인데요. 이러한 통신 규약을 바탕으로 요청(Request), 응답(Response)을 통일된 형식으로 보내게 됩니다. 즉 여러분들이 인터넷에서 클릭을 하고 어떠한 동작을 한다는 것은, 서버에 정보를 요청하는 행위입니다. 그리고 서버는 여러분들이..
-
Firefox Java Coding StyleJava & Kotlin 2020. 6. 13. 17:38
안녕하세요 오늘은 파이어폭스(Firefox) 회사인 모질라 재단이 정의한 자바 코딩 스타일(Java Coding Style)에 대해서 공부해보려고 하는데요. "깔끔한 코드"란 과연 무엇일까라는 고민을 한 적이 있습니다. 흔히 말하는 "있을 곳에 있는 코드", "누구나 읽었을 때 어색함이 없는 가독성" 일 것 같습니다. 그래서 영향력 있는 회사들은 어떻게 작성하는 코드가 읽기 쉽고, 깔끔하다고 정의하고 있을까 궁금해서 시작했습니다. 사실 코딩 스타일은 각 회사별로 다릅니다. 왜냐하면 사람마다 코딩하는 스타일도 다르고, "좋은 코드"에 대한 의견도 다릅니다. 그렇게 수많은 다른 사람들이 모인 회사에서, 각자 원하는 대로 코드를 치면 프로그램 전체의 코드 스타일이 재각각이 될 것입니다. 책 한 권을 만드는데,..
-
깃헙에 소개된 내 글Contribution 2020. 6. 8. 15:59
https://github.com/Integerous/goQuality-dev-contents#mailbox-queue Integerous/goQuality-dev-contents { 고퀄리티 :zap: 개발 컨텐츠 모음 }. Contribute to Integerous/goQuality-dev-contents development by creating an account on GitHub. github.com 고퀄리티 개발 컨텐츠라는 주제로 운영되는 깃허브에 제 글이 올라왔습니다! 감사합니당
-
왜 JVM이 필요할까?JVM 2020. 6. 6. 18:49
누군가 저에게 물었습니다. "어차피 JVM도 C로 만들어진 가상 머신인데, 처음부터 C처럼 바로 기계어로 컴파일해주면 되지 않나요? 왜 굳이 속도 저하를 가지면서 두 번의 과정을 거쳐야 하죠?" 답변을 하려고 생각을 해보니 꽤 타당한 이야기입니다. 뭔가 설득당할 것 같습니다. 혼자서 나름대로 오랜 시간 고민을 해보고, 정리한 내용들입니다. 1. History of Java 모든 것을 설명하기 전에 자바의 유래에 대해서 알아보려고 합니다. 모든 것의 뿌리는 중요합니다. 아무리 변형이 일어나도, 근본이 되는 진리는 변하지 않습니다. 자바는 James Gosling이라는 캐나다의 개발자에 의해서 만들어졌습니다. 자바의 역사를 보면 지겹도록 나오는 말이 "Write once, Read anywhere"입니다. ..
-
[Java]초기화란?Java & Kotlin 2020. 5. 30. 18:14
문득 "초기화"가 뭘까라는 생각이 들었습니다. 우리가 공유기를 사용하다가 잘 안될 때 "초기화"를 하고는 합니다. 그때 일반적으로 드는 생각은 뭔가 설정이 가득 쌓여있다가 싹 사라지고, 초기 설정으로 돌아가는 느낌이 듭니다. 하지만 왜 초기화하는 걸까요? 애초에 넣은 값이 없는데, 뭘 다시 되돌리는 걸까요? 뭐가 있어야 처음으로 돌아갈 값도 있는 것 아닐까요? Intialization (초기화)의 사전적 의미 영어로는 "Initialization" 입니다. 구글 사전에 의하면 "작업을 시작하기 위해서 값을 설정하거나 넣는 것, 포맷(컴퓨터 디스크)"이라는 뜻 이라고 합니다. 엥? 뭔가 되돌리는 느낌이랑 완전 반대입니다. 애초에 아무것도 없기 때문에 뭔가 넣어주는 느낌입니다. 위키피디아에서 좀 더 알아보겠..