반응형

요즘 개발자 커뮤니티를 방문하면 자주 올라오는 취업 관련글이 있습니다.
개발자가 되고 싶고 개발자로 취업하고 싶은데 어떻게 하면 좋을까 이런 고민글인데요.
많은 예비 개발자들의 가장 큰 어려움이지 않을까 싶습니다.



저도 비전공에 개발의 "ㄱ"도 모르는 상태에서 독학으로 시작했고 학원도 다녔지만 처음엔 정말 이해도 잘 안 되었고 학원 수료 후 취업 걱정도 많았습니다.
내가 개발자가 될 수 있을까?
하지만 절대 포기하지 않았습니다.
프로그래밍 언어들이 어렵고 이해가 안되었지만 묻고 찾고 반복하면서 하나씩 해결을 했습니다.
열심히 하니 옆에서 선배 개발자들이 도와주기도 했습니다.
그렇게 시간이 지나니 개발이 무엇인지 자연스럽게 알게 되었습니다.
개발자로 취업도 하고 프리랜서로 활동도 했습니다.
그리고 이제는 후배 개발자에게 조금이나 도움을 주고 싶어 이 포스팅을 쓰게 되었습니다.
개발자 취업이 요즘 어렵다지만 뭐든지 밀물과 썰물이 있습니다.
준비된 자만이 기회를 잡을 수 있기에 항상 준비된 상태로 있어야 합니다.

개발자가 되고 취업도 하고 싶은데 전혀 관련 지식이 없어서 무엇을 어떻게 시작해야 할지 막막하다면 다음 5가지를 잘 읽고 계획을 세운 뒤 실행해 보세요.


학원 가기 전 보면 도움이 됩니다.

그럼 개발자 취업을 목표로 실행에 자신 있는 분들은 계속 읽어보세요.



1. 용어 정리


드라마 미생을 보면 장그래가 업무 지시받을 때마다 이건 뭔 외계어인가? 하며 어리바리하고 있을 때 오 과장이 무역 용어사전을 건네줍니다.
왜?? 무슨 말인지는 알아들어야 하니까요.

사진: Unsplash 의 Joshua Hoehne


어려운 전문 용어로 된 책을 본 적이 있을 겁니다. 읽을 수만 있지 문장 해석이 안되어 먼 소린가 했던 기억이요.
개발자가 되고 싶다면 자주 사용하는 그들만의 용어, 문서 명칭, 최신 트렌드(AI 같은)에 대한 의미는 알아야 의사소통이 됩니다.
작은 노트에 잘 정리해서 수시로 보면 뇌 구조가 IT방향으로 바뀌는 게 느껴질 겁니다.


2. 공부할 목차 정리


용어 정리를 잘했다면 이제 개발자는 어떤 일을 하는지 알게 되었을 겁니다.
개발자가 되기 위해서는 당연히 공부를 해야 됩니다.
보통 프로그래밍을 위한 공부 해야 합니다.
물론 공부할 것이 다양하게 있지만  하나를 정해서 시작하면서 감을 잡아야 합니다.
하지만 엄청난 두께의 책을 펼치면 소스 코드로 범벅된 페이지들이 나타나는데 보면 헉 소리가 납니다.
이 많은 내용을 언제 이해하고 개발자로 성장할 수 있을까? 걱정이 앞섭니다.
걱정 마세요!

사진: Unsplash 의 Unseen Studio


사실 실전에서 사용하는 개발 문법은 기초적인 것만 우선 알면 됩니다.
나머지는 이런 게 있구나 하는 정도만 익히고 그 부분이 필요한 시점이 되었을 때 찾아서 사용하는 방법만 알면 됩니다.
그래서 기초 문법을 먼저 대상으로 정하는 것이 중요합니다.
처음부터 전부 다 알려고 하면 엄청나게 부담도 되고 의욕 상실로 포기하는 상황이 올 수 있습니다.
문장의 5형식만 새까맣게 공부하고 뒷부분은 깨끗했던 영문법 책처럼요. ^^
그렇다면 어떤 목차를 정해서 집중적으로 공부하면 될까요?


3. 공식 사이트


목차를 정하려면 교재가 있어야 합니다.
보통 책을 생각합니다. 그리고 주변에 조언도 구하고 검색해서 인기 있는 책을 찾아봅니다.
이 책으로 공부 후 다른 책으로 어쩌고 저쩌고...
사람들마다 책 추천이 달라서 혼란스럽기도 합니다.
특히 개발서는 가격도 만만치 않기 때문에 나에게 맞지 않은 책을 샀다가 돈만 날릴 수 있습니다.
신기한 연구소는 해당 언어의 공식 사이트를 추천합니다.
보통 영어로 되어 있습니다.
걱정 마세요.
읽다 보면 같은 단어들이 반복되기에 생각보다 어렵지 않게 읽을 수 있습니다.
번역 프로그램도 잘 되어 있는 세상이고 가끔 한국어로 번역된 사이트도 있습니다.

https://developer.mozilla.org/en-US/


예를 들어 자바, 자바스크립트 등 하나를 선택했다면 해당 공식 사이트에 갑니다.
그리고 그 언어의 탄생, 특징, 어떤 용도로 사용하는지 간단하게 살펴봅니다.
자바스크립트라면 변수부터 시작해서 변수, 제어 흐름, 오류 처리, 로프와 반복, 함수, 표현식과 연산자, 숫자와 날짜 등 기초적인 문법을 기간을 정해서 스터디를 합니다.
당연히 처음 하면 무슨 말인지 잘 이해도 안 되고 오류도 많이 납니다.
모든 선배 개발자들도 그런 처음이라는 시절이 있었습니다.
하지만 포기하지 않고 모르는 건 찾아가면서 이해될 때까지 읽고 코딩하면서 전문 개발자로 성장하게 된 겁니다.
영문법 한 번 공부했다고 100점이 될 수 없는 겁니다.
공부하면서 실전에 쓸만한 부분은 따로 정리하면 좋습니다.


4. 샘플 작업


문법 공부를 하면 따라 하기 코딩을 하게 됩니다.
처음에는 뭔지도 모르고 그저 따라 하고 실행하고 오류 나면 정신이 혼미해지고 잘 되면 기분이 좋아지기도 합니다.
따라 하기 코딩을 하면서 실행이 잘 된다면 약간 변형도 해보세요.
오류가 나면 스트레스받지 마세요. 오히려 그것을 해결하면서 더 많은 공부를 하게 됩니다.
오류가 발생할 때마다 짜증을 내거나 스트레스를 받으면 개발자를 할 수 없습니다.
그 이유는 선배 개발자들도 코딩을 할 때 오류는 항상 발생합니다.
오류를 처리하는 것도 개발하는 과정 중 하나입니다.

사진: Unsplash 의 Luca Bravo


즉, 당연히 오류는 나타나고 당연히 해결하는 게 개발자의 일입니다.
이렇게 코딩 연습을 하다 보면 나름 눈이 트이게 되고 필요한 기능들을 만들어 볼 수 있게 됩니다.
그런 샘플 코드를 잘 정리해 두면 나중에 프로젝트 진행 시 시간 절약과 정시 퇴근에 큰 도움이 됩니다.
그렇게 개발자 준비를 하면서 한 가지 더 익혀두면 좋은 기술이 있습니다.  


5. 사이드 기술


개발자가 개발만 잘하면 되지 뭐가 더 필요할까요?
프로젝트에 투입되면 코딩만 하는 것이 아닙니다.
개발자는 보고서, 일정, 개발 관련 문서, 테스트 문서 등을 워드, 엑셀, 파워포인트로 작성합니다. 공공 기관의 경우 한글을 사용하기도 합니다.
그렇다면 오피스 프로그램 사용법을 잘 익혀두면 선배들께 사랑받겠지요?
개발된 소스는 매번 형상관리를 해야 합니다.

https://git-scm.com/


각자 PC에만 저장했다가 혹시 잘못되면 큰일 나기 때문에 깃(깃허브)에 소스를 관리합니다.
그렇다면 깃(깃허브), SVN 등 사용법을 미리 익혀 둔다면 이 또한 선배들의 관심을 받게 됩니다.
개발을 하면 테스트를 하게 됩니다.
jUnit 같은 테스트 툴 사용법을 미리 알아두거나 테스트는 어떻게 하는지 정보를 수집해 두는 것도 큰 도움이 됩니다.

 

실행합시다.

 

개발자가 되고 취업도 하고 싶은데 무엇을 어떻게 시작해야 되나 막막했을 텐데 위 5가지를 보고 하나씩 한 걸음씩 차근차근 준비해 보세요.능숙해지기 위해서는 시간과 노력은 반드시 필요합니다.
절대 포기하지 마시고 a. 용어 정리부터 한 단계식 준비하시면 어느 순간 개발자가 된 자신을 발견하게 될 겁니다.

그리고 최소한의 기초가 되었다면 좀 더 전문적으로 배울 수 있는 국비 학원 또는 부트 캠프를 찾아보세요.
물론 나에게 맞는 강의를 찾아야 합니다. 

개발자로 취업하는 그날까지 파이팅입니다.

반응형
반응형

안녕하세요. 늙은 개발자 신기한 연구소입니다. ㅎㅎㅎ

읽다가 잘못 표현된 부분이나 궁금한 부분이 있으면 댓글 주세요.

2000년 처음 오라클(ORACLE) 교육을 받을 때가 기억나네요.

강사가 앞에서 SELECT, INSERT, UPDATE, DELETE를 설명하는데..

그 문법적인 내용은 이해를 했지만..

그래서? 저걸 어디에 어떻게 사용하는 거야? 그 답답한 마음이 생각나네요.

강사는 그런 부분을 설명해 주지 않고 그냥 저 문법적인 내용과 유형만 설명하고 끝!

나중에 취업하고 프로젝트 뛰면서..

아~ 이렇게 사용하는 거구나~!!

눈이 번쩍 트이더군요.

이번 포스팅은 바로 SQL에서 데이터를 다루는 SELECT, INSERT, UPDATE, DELETE에 대해 아주 기초적인 부분을 다뤄볼까 합니다.

시작~

DML은 데이터를 다루는 언어입니다.

데이터를 입력하고 입력된 데이터를 수정도 하고 잘못된 데이터는 삭제도 하고 필요한 데이터는 조회도 할 수 있는 명령어입니다.

 

땡땡마트에서 장을 보던 고객이 맛있는 쮠라면이 없다고 해서 재고관리 프로그램을 실행해서 조회를 합니다.

재고명을 쮠라면으로 입력하고 검색을 하니 재고가 0으로 나옵니다.

그래서 주문을 했고 다음날 쮠라면 100 상자가 입고되어서 재고관리에서 쮠라면 100 상자를 입력합니다.

며칠 뒤 쮠라면이 또 없다는 고객의 문의에 재고관리 프로그램으로 조회했는데 아직 10 상자가 남은 것으로 나옵니다. 이상해서 확인해보니 저번에 100 상자가 아닌 110 상자로 오타가 있었습니다.

그래서 재고를 10 상자에서 0 상자로 수정하고 저장을 합니다.

이렇게 장사가 잘 되어서 아르바이트생 한 명을 뽑았습니다.

사원 등록 프로그램에서 열심히 등록을 했는데 다음날 아침 갑자기 못하겠다고 전화가 왔어요.

그래서 사원 관리 프로그램에서 아르바이트생을 삭제합니다.

 

더 자세한 기능들이 많겠지만 간단한 마트 프로그램을 예로 들어서 DML에 대해 설명을 해볼게요.

 

처음 쮠라면을 재고를 조회하는 기능이 있었습니다.

화면에는 다양한 조건으로 검색할 수 있게 디자인되어 있겠지요.

바코드, 상품명 등으로요.

상품명을 넣고 조회를 클릭하면 화면에서 서버의 재고 조회기능 함수에 해당 조건을 실어서 조회 요청을 보냅니다.

그럼 서버는 재고조회 함수는 해당 조건을 받아서 데이터베이스에 조회를 요청합니다.

우리는 오라클을 사용한다고 가정하겠습니다.

해당 DBMS는 조회 SQL을 받아서 실행하고 그에 맞는 결과 데이터(재고정보)를 다시 서버의 재고조회기능 함수에 전달합니다.

서버의 재고조회 함수는 이 데이터를 받아서 화면에 보내줍니다.

화면단에서는 해당 정보가 오면 화면 디자인(그리드라고 합니다.)에 맞게 데이터를 보여줍니다.

 

화면단->서버->DBMS->서버->화면단..

 

저장이나 수정 그리고 삭제도 같은 패턴으로 진행합니다.

다른 점은 조회는 요청 목록을 전달받고 저장, 수정 그리고 삭제는 성공 여부를 전달받습니다.

 

먼저 데이터를 입력하는 SQL문을 보겠습니다.

그전에 SQL을 실행할 수 있는 툴이 있는데요..

프로젝트에 투입되면 오렌지, 토드, SQL Developer 등의 툴을 만나실 겁니다.

해당 툴들을 사용해서 데이터베이스에 접속한 뒤 명령문을 통해 조회, 입력, 수정, 삭제를 직접 실행할 수 있습니다.

즉, 서버단에 요청 쿼리를 만들기 전에 위 툴을 사용해서 미리 SQL문이 오류가 없는지 검증을 할 수 있어요.

 

INSERT 문

DBMS에 데이터를 저장하는 명령어입니다.

 

[유형 1]

INSERT INTO TABLE_NAME

VALUES (value 1, value 2… value n);

 

[유형 2]

INSERT INTO TABLE_NAME (column 1, column 2, column 5, column 9)

VALUES (value 1, value 2, value 5, value 9);

 

INSERT문의 기본 유형들입니다.

유형 1은 테이블 전체 컬럼에 값을 넣을 경우 값만 컬럼의 순서대로 입력해 주면 됩니다.

반드시 순서대로 넣어야 합니다. 그리고 마지막은 세미콜론(;) 잊지 마시고요.

유형 2는 테이블 행을 추가하는 데 모든 컬럼값이 아닌 원하는 컬럼값만 지정할 때 사용합니다. 그래서 입력할 컬럼을 순서대로 기입하고 values 뒤에 해당 컬럼에 매칭 되게 순서대로 값을 입력해 주면 됩니다. 쉽죠?

주의할 점은 PK나 NOT NULL은 무조건 값을 넣어야 합니다. 안 그러면 오류 날껄요? 

 

INSERT문은 기본적으로 하나를 만들면 한 개의 행(데이터)만 넣을 수 있습니다.

 

위 사례를 가지고 간단하게 실제 SQL문을 작성해 볼게요.

우선 재고 상품을 저장하는 테이블의 명은 GOODS로 하겠습니다.

 

[예문]

--쮠라면 100 상자 입력하기

INSERT INTO GOODS (GOODS_ID, BARCODE, GOODS_NAME, GOODS_QTY, REG_DATE)

VALUES (‘NDL001’, ‘880123123123’, ‘쮠라면’, 100, SYSDATE);

 

이 쿼리를 실행하면 쮠라면 100 상자에 대한 한 줄(행)의 데이터가 입력됩니다.

 

UPDATE 문

DBMS의 값을 수정(갱신)합니다.

 

[유형 1]

UPDATE TABLE_NAME

SET column 1 = value 1,

Column 2 = value 2;

 

데이터베이스에 저장된 값의 일부를 수정할 수 있습니다.

SET 다음에 수정하고 싶은 컬럼을 지정하고 “=”를 사용한 뒤 값을 넣어주면 됩니다.

2개 이상의 컬럼을 지정하고 싶으면 콤마(,)를 사용해서 나열하면 됩니다.

기본 숫자 값은 “=” 뒤에 숫자 값만 넣으면 되고 (Col = 3)

문자 값은 “=” 뒤에 싱글 쿼테이션(‘, 싱글 따옴표)으로 감싸면 됩니다. (Col = ‘쮠라면’)

그리고 값을 비우고 싶을 때는 빈 값의 표현인 싱글 쿼테이션만 두 개 연속 사용하거나 (col = ‘’)

값 할당을 제거하고 싶으면 null을 사용하면 됩니다. (col = null)

‘’과 null은 다른 개념입니다. ‘’는 빈 값이라는 의미이고 null은 할당 자체를 아직 안 했다는 의미입니다. ASCII 코드 값도 null은 00이고 ‘’는 32입니다. 다르죠? ㅎㅎ

 

그럼 위 쮠라면 가지고 수정 SQL문을 작성해 볼께요

 

[예문]

--쮠라면 수량 110->100으로 수정

UPDATE GOODS

SET GOODS_QTY = 100  -- 숫자니까 싱글 따옴표는 없어요~

WHERE

GOODS_ID= ‘NDL001’; 

 

우선 유형과 다르게 WHERE문이 마지막에 나타났습니다.

WHERE문을 넣지 않고 실행하면 GOODS 테이블 전체 데이터의 수량이 100으로 바뀌는 대 참사가 일어납니다. ㅎㅎㅎ

WHERE문은 다양하게 사용할 수 있기에 따로 포스팅할 계획입니다.

위 문장을 실행하면 상품코드가 NDL001 (누들 순번 1이라는 의미로 임의로 만들어 본 거예요. ㅎㅎ)인 행의 수량을 100으로 수정한다는 의미입니다.

그런데 화면에서 쮠라면을 선택했는데 어떻게 상품코드가 NDL001인지 알 수 있을까요?

화면에 그리드(엑셀의 표처럼 생긴)에 데이터 목록이 조회가 될 것이고 보통 2가지 타입으로 구성하는데요. 쮠라면 옆에 상품코드를 보여주기도 하고 일반 고객이 보는 화면이라면 상품코드를 가져오기는 하지만 안 보이게 히든(HIDDEN)해 둘 수 있어요.

그래서 해당 상품을 선택해서 수정을 보낼 때 상품코드도 같이 서버 함수에 보내면 해당 코드를 UPDATE문의 WHERE절에서 사용할 수 있답니다.

전체 데이터를 수정할 것이 아니라면 WHERE 조건을 반드시 사용하시고

SQL툴에 미리 넣고 테스트해보고 난 후 프로그램에 반영하는 습관을 들여야 합니다.

DML 문은 COMMIT;을 하지 않으면 반영이 안 되기에 실행만 하고 조회해서 맞는지 확인하고 ROLLBACK;으로 원복 하면 된답니다.

 

DELETE 문

DBMS의 값을 삭제합니다.

 

[유형 1]

DELETE (FROM) TABLE_NAME;

 

잘못 입력된 데이터는 삭제를 해야 합니다.

데이터를 삭제하는 방법은 3가지로 볼 수 있는데요.

DROP TABLE은 데이터뿐 아니라 테이블 자체도 날려버립니다.

그래서 일반 개발자는 권한이 없을 거예요. ㅎㅎ

TRUNCATE TABLE은 테이블의 구성은 그대로 살려두지만 데이터는 싹 날려버립니다.

테이블을 깨끗하게 밀어버리고 새로 데이터 받기에 좋겠네요.

그리고 DELETE 문입니다.

이 3가지도 나중에 포스팅할 계획입니다.

우선은 DELETE에 대해 알아봅니다.

유형을 보면 FROM에 괄호가 있습니다.

FROM을 생략해도 된다는 의미입니다.

 

땡땡마트로 예문을 만들어볼게요.

직원 테이블은 EMP로 하겠습니다.

 

[예문]

--바로 그만둔 아르바이트생 정보를 삭제

DELETE FROM EMP

WHERE EMP_ID = ‘T009’;

또는

DELETE EMP

WHERE EMP_ID = ‘T009’;

로 사용할 수 있습니다.

아래 보면 FROM을 빼고 사용했지만 잘 작동합니다.

 

DELETE문도 주의할 점은 WHERE절이 꼭 필요하다는 겁니다. 넣지 않는다면 어떻게 될지 상상이 되시지요?

운영을 하다 보면 DELETE 문 실수가 종종 일어나는데요.

운영에 DELETE 문 요청을 보내면 DBA가 실행을 해주는데..

완료했다고 피드백이 와서 확인해 보면 삭제가 안되어 있는 경우가 아주 가끔 있어요.

DBA가 개발에서 삭제를 한 거였답니다. ㅎㅎ

반대 상황이었다면 심각한 상황이 될 수도 있었겠지요?

삭제와 관련된 명령어들은 항상 주의해야 합니다.

 

마지막으로 가장 많이 사용하는 명령어입니다.

 

SELECT 문

DBMS에서 원하는 데이터를 뽑아내기 위해 사용(조회)하는 명령어입니다

도서관에 가면 검색용 컴퓨터가 있습니다.

책 이름, 저자 이름 등을 넣고 검색을 하면 관련된 책들이 쭉~ 나옵니다.

도서관의 엄청난 분량의 책들은 모두 데이터베이스에 저장되어 있습니다.

그중 원하는 정보를 잘 뽑아내야 책을 빌릴 수 있겠지요?

 

[유형]

SELECT [ALL/DISTINCT] column 1, column 2 …  --조회하고 싶은 컬럼명을 , 로 연결해서 입력

FROM TABLE_NAME;

 

SELECT 문은 데이터를 조회할 때 사용합니다.

위 [] 안의 ALL과 DISTINCT가 있는데 전체 조회 시는 ALL을 사용하고 중복된 컬럼을 합쳐서 보고 싶으면 DISTINCT를 사용하면 됩니다.

ALL은 기본적으로 생략하고 사용합니다.

DISTINCT는 SELECT 바로 뒤에 사용하고 DISTINCT 다음의 컬럼에 대해서만 중복을 제거합니다.

컬럼 부분은 원하는 부분을 보고 싶은 순서대로 콤마(,)로 연결해서 나열하면 됩니다.

 

쮠라면을 검색해볼게요.

 

[예문]

SELECT GOODS_ID, GOODS_NAME, GOODS_QTY, BARCODE

FROM GOODS

WHERE GOODS_ID = ‘NDL001’;

 

결과는 ‘NDL001’, ‘쮠라면’, 100, ‘880123123123’ 이렇게 나올 겁니다.

이 부분을 화면의 그리드에 한 셀씩 넣어주면 우리가 보는 목록으로 나올 거고요.

 

SELECT문도 주의할 점이 있어요.

데이터가 대용량일 경우는 꼭 툴에서 미리 소요시간과 데이터 정확도를 확인 후 반영해야 합니다.

그렇지 않고 SELECT 문을 잘못 만들어서 실행하면…

결과가 늦어지면서 부하가 걸리고 특히 빠른 처리 속도가 필요한 시스템일 경우 대형 사고가 터질 수 있답니다.

 

월 결산을 말일에 하는데 SELECT 문을 검증하지 않고 그냥 실행했다가 24시간 이상이 걸릴 수도 있답니다. 결산을 해야 1일부터 다시 사용할 수 있는데 1일 업무시간이 시작되었는데도 마감이 안되었다면 업무 마비 사태가 발생하는 거라 대형사고에 속합니다.

편의점, 통신사 등이 대표적이겠네요..

그래서 대형 기업들은 수시로 튜닝하면서 관리를 한답니다.

 

쉽게 설명한다고 했는데 도움이 되었나 모르겠네요.

누구든 처음은 있는 겁니다.

프로그래머(개발자)를 준비하는 예비 취준생분들이나,

이제 막 시작하는 왕초보 개발자분들..

넘 걱정하지 말고 차근차근 준비하면서 옆 선임들에게 도움받으면 잘 될 거예요.

꽤 경력이 되는 저도 아직 부족함을 느끼면서 계속 공부를 하고 있는 건 비~밀~ ㅋㅋ

다음에는 더 쉽게 표현할 수 있게 노력해볼게요.

감사합니다.

반응형