
안녕하세요 Shiny Ocean 입니다 : ) 이번 포스팅에서 다루어볼 내용은 NULL입니다. 개요 지금까지 개발을 진행해보며 NULL 이란 값은 정말 많이 접해왔습니다. 제게는 코드라인 보다는 주로 실행 콘솔창에 에러 메세지의 문구로 자주 등장하였습니다. 그런데 학부 과정에서 NULL은 그냥 값이 없다 이런식으로만 배우고 얼렁뚱땅 넘어갔던것 같습니다. 그래서 여러가지 NULL과 관련된 에러 또는 로직의 문제가 발생했을때 정확한 원인을 잡지못하고 넘어간적이 많았던것같습니다. 그래서 이번 포스팅은 NULL이 정확하게 무엇인지 언제 NULLPointer 예외가 발생하는지 등에 대해 다루어보겠습니다. Null의 정의 사전적인 의미로는 없는, 값이없음 등의 의미를 하고있지만 코드적으로 그의미는 조금다릅니다. 값..

안녕하세요 Shiny Ocean 입니다 : ) 이번 포스팅에서 다루어볼 내용은 자바언어의 참조 타입과 메모리 활용입니다. 자바의 데이터 타입 1. 기본타입 (primitive type) 정수타입 : byte, char, short, int, long 실수타입 : float, double 논리타입 : boolean 2. 참조타임 (reference type) - 객체를 참조하는 타입 배열, 열거, 클래스, 인터페이스 두가지 타입의 가장 큰 차이점은 변수가 가리키는것이 값이냐, 객체의 번지이냐 입니다. 사용자 스택영역 내에서 기본타입의경우 변수에 초기화한 값이 직접적으로 저장되지만 참조타입의 경우 값을 저장해둔 힙영역내 객체의 번지를 참조합니다. (int) age = 21 (String) name = 100..

안녕하세요 Shiny Ocean 입니다 : ) 여러분들은 자바 좀 잘하시나요? ㅎㅎ 저는 지금까지 제가 자바를 잘하는줄 알았습니다. 나름 대학교 과정중에서 객체지향프로그래밍 과목 A+을 맞고 다른 언어들보다는 능숙하게 사용한다 자부해왔었습니다. 하지만 요즘 웹개발을 시작하고 기본적인 개념과 이론이 너무나도 부족하고 자만을 해왔다는 생각을 많이 하게 되었습니다. 3학년 2학기기간동안 온라인 코딩강의를 통해 자바 스프링 웹개발을 독학해왔습니다. 그리고 결과물도 만들어보았지만 따라하기식 코딩에서 어노테이션이 어떤건지 예외처리는 어떤건지 제대로 알지 못했습니다. 그저 따라하기, 코드 복사하기를 응용이라는 변명으로 해오다가 이를 포스팅하려하니 조금만 자세히 들어가도 구글링시간이 글 적는 시간보다 길어졌습니다. 그..

안녕하세요 Shiny Ocean 입니다 :) 이번 포스팅은 앞으로 진행할 자바 웹개발에 대한 인트로가 될 포스팅입니다. 첫글은 웹 서버가 굴러가는 원리를 다루어 보겠습니다. 웹 서비스는 클라이언트의 요청과 서버의 응답으로 동작합니다. 클라이언트는 고객, 서버는 서비스 + er 로 서비스 하는 사람 이라 생각하면 위의 동작공리를 이해하기 편합니다. 그럼 우리는 서버를 개발하는 사람으로서, 클라이언트의 요청에 대해 응답을 제시해 주면 웹서비스 개발은 끝입니다. 이로서 포스팅 끝! 하고싶지만... 똑같은말을 처음에 책만보고 봤을때는 전혀 이해하지 못했습니다. 예시를 살펴보고 직접 간단하게 구현해보겠습니다. 요청에 대해 응답을 제시한다는것이 어떤 의미 일까요? 우리가 웹브라우저를 실행하고 네이버웹툰이 들어가고 ..

안녕하세요 : ) shinyocean 입니다. 이번 포스팅에서 다루어볼 것은 딜레이 함수에 대한 이야기 입니다 저는 이번학기 대학교 설계 과목으로 마이크로 프로세서 응용 설계 라는 과목을 수강하게 되었습니다. 해당과목은 티바 보드라는 ARM사의 실습보드와 C 언어를 이용해 자유롭게 임베디드시스템 하드웨어를 디자인하는것입니다. 그런데 오늘 실습에서 LED 토글과 관련해서 딜레이 함수를 구현하는것을 다루게 되었습니다. 평소 딜레이 함수가 필요할때는 window.h의 sleep함수나 time.sleep과 같은 잘 짜여진 라이브러리를 이용해왔습니다. 티바보드의 경우 컴파일된 파일을 보드에서 실행하는 것이 아닌, 보드에 컴파일 칩셋이 내장되어있어서 보드 내에서 컴파일하고 실행되는 형식이었습니다. 그래서 그런지 해..

안녕하세요 shiny ocean 입니다 : ) 벌써 3학년 2학기가 시작되었습니다. 요즘은 백준 알고리즘 문제 풀이와 대학교 전공과목 수강으로 아주바쁜? 날들을 보내고 있었습니다! 그러다가 데이터베이스 과목 교수님께서 의미 있는 코딩 과제를 주셔서 오랜만에 열심히 한번 해보았습니다. 개발언어와 환경은 자유롭게 선택하게 해주셔서 오랜만에 자바가 쓰고 싶더군요.. 요즘 파이썬으로만 알고리즘 문제를 주구장창 풀어서 그런지 조금 로우레벨의 코딩을 해보고 싶었어요! 물론 자바도 절대 로우레벨은 아니지만 파이썬에 비하면 조금은 신경써줘야 할것들이 많은 편이니까요! 두가지 테이블에 있는 공통된 속성값을 통해 원하는 결과행들을 출력하는 과제였습니다. 각 테이블의 조건 검사 과정이 마치 관계형 데이터베이스(RDB)의 s..

안녕하세요 :) 이번 포스팅에서는 장고와 mysql을 연동해보고 html 카테고리에서 호스팅했던 웹페이지를 살짝 건드려서 웹페이지에 데이터 베이스 테이블이 출력되는 결과를 확인해볼것입니다. 허허.. 이번에는 구글링 시간이 5시간 이상은 잡아 먹힌거 같아요 가상환경도 다시 시도해보고 mysql 클라이언트도 계속 다시 깔아보고 오류가 참 많이 났었어요 ㅎ 그래도 결과물은 나쁘지 않았네용 일단 지난 포스팅을 통해 우리는 django를 통한 웹페이지를 구축해봤습니다. 지난번에 이어서 이번에는 데이터 베이스를 연동해 보겠습니다. 데이터 베이스 연동을 위해서는 migrate라는 이전 작업이 필요한데 이때 사용되는 패키지가 mysqlclient입니다. 그런데 설치중에 특히 우분투 리눅스는 아래와 같은 에러가 나타납니..

안녕하세요 :) 저번 포스팅에서 우리는 글로벌 변수를 이용한 상호배제를 지켜주는 코딩을 다루어 보았습니다. 저의 경우 모자란 코딩 실력 탓에 무식하게 스레드를 선언하고 무식하게 글로벌 변수를 선언하여 코드의 시퀀스와 상관없이 상호배제만 지켜질수 있도록 코딩을 진행해보았는데요. 사실 로직을 조금더 이해하고 조금만더 머리를 사용해보면 코드의 진행 시퀀스도 지키면서 상호배제도 이룩할수 있는 방법이 있을것 입니다. 하지만 그럴 필요가 있을까요? 저는 그보다는 이미 검증된 라이브러리를 사용하는 것을 거 추천드립니다. 왜냐하면 상호배제를 지켜줄수 있는 논리적인 방법을 열심히 생각해서 사용하는 것도 물론 큰 의미가 있겠지만, 우리보다 머리가 좋은 사람들이 이미 세마포어라는 검증된 라이브러리를 만들어 두었습니다. 이를..