백엔드 언어2017. 6. 18. 00:31


자바 웹 개발자로써의 학습을 기준으로 두고 작성하였습니다.




1. 단기 속성 과정


 1) 이클립스

 2) HTML, CSS, JAVASCRIPT

 3) 자바, JSP, 서블릿

 4) 스프링 프레임워크

 5) 마이바티스 프레임워크


-> 우리나라 현실에서는 순서대로 이정도만 해도 취업해서 개발자가 될 수 있다. 하지만 이후에 아래의 장기 과정을 밟아야 한다고 생각한다.




2. 장기 과정


※ 별표기준

★★★★★  깊이가 매우 깊게 반드시 알아야 한다.

★★★★    반드시 알아야 하지만 적당히 깊어도 된다.

★★★       한단계 성장하려면 알아야 한다.

★★         반드시 알 필요는 없지만 알면 좋다.

★            몰라도 먹고 사는데 지장 없다.


1) 통합개발도구,IDE (★★★★)

 -> 이클립스, 인텔리 J 등


2) 자바 (★★★★★)

 -> 자바로 시작해서 자바로 끝낸다라고 할만큼 제일 중요하다.


3) JSP, 서블릿 (★★★★)

 -> JSP 보다도 서블릿이 더 중요하다. 서블릿의 라이프 사이클과 매커니즘 이해가 필요하다.


4) 빌드 도구 (★★★)

 -> ANT, 메이븐 등

 -> 통합개발도구들이 잘 돼있어서 몰라도 되지만 어떻게 해서 빌드가 되고 배포가 되는지 아는것도 필요하다.


5) 버전관리도구 (★★★★)

 -> GIT, SVN 등


6) 테스트 주도 개발과 리팩토링 (★★★★)

 -> TDD 같은 방식을 몸에 익혀놓고 습관을 들이면 나중에 수많은 에러의 예방으로 돌아온다.

 -> 처음에는 UI 없는 예제 또는 데이터베이스 없는 예제를 통해서 하는것이 좋다.


7) HTML, CSS, JAVASCRIPT (+JQuery) (★★★)

 -> 백엔드만을 전문적으로 한다면 별 두개가 맞다고 생각하지만, 프론트엔드도 일정부분 필요한 환경이라면 별 네개까지 올라갈 수 있다고 생각한다.


8) OOP, 디자인패턴 (★★★)


9) JDBC, Spring JDBC (★★★★★)

 -> Callback interface, Class 개념 이해


10) Mybatis, ORM, JPA, Hibernate (★★★★)

 -> Mybatis 는 ORM 이 아니며 학습비용이 낮다.

 -> ORM은 학습비용이 매우 높다. 상대적으로 높은 수준이 아니라 엄청나게 높다.




순서는 중요하지 않으며 웹개발자로써 하나씩 알아가야 한다.

'백엔드 언어' 카테고리의 다른 글

DAO(Data Access Object) 패턴  (0) 2017.06.19
다형성(Polymorphism)  (0) 2017.06.19
템플릿 언더바 기본 (Template Underscore)  (0) 2017.03.24
JSTL 사용법  (0) 2017.03.24
Json-Simple 추가 및 사용법  (0) 2017.03.24
Posted by EL2A
데이터베이스2017. 6. 17. 23:49

위키피디아를 많이 참조했습니다.

매우 간단하게 요약.

 

먼저 정규화(Normalization)란 무엇일까?

- 정규화란

관계형 데이터베이스(테이블간에 관계를 맺을 수 있는 상황)에서 중복을 최소화 하기 위해서

데이터를 구조화 하는 작업.

 

 

1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF 가 있으며

보통 3NF 가 되었으면 ‘정규화 되었다’ 라고 한다.

하지만 실무에서는 대규모 데이터 처리시 성능(Performance)향상을 위해 정규화를 안쓰거나 낮은 수준의 정규화를 만족하는 경우가 많다.

예를 들어서 어떤 고객의 정보를 2개의 테이블로 나누어 두었다고 했을 때 정보를 불러오려면 2개의 테이블에 각각 접근해야 하므로 부하(load)가 걸린다.
하지만 하나의 테이블에 몰아두었을 경우 당연히 더 빠른 성능을 보장한다. (아래의 그림 1(비 정규화), 그림 2(1NF 정규화) 참고)

 

1NF(First Normal Form) : 행과 열의 순서에 영향을 받지 않으며 (원래 DB 는 영향을 안받는다.), 모든 항목에 값이 있어야하며(NULL 허용안함), 중복 기능 열이 없어야 한다.
e1
<그림 1 : NULL 값도 있으며, 같은 기능을 하는 열(TEL 1, TEL 2, TEL 3)이 있어서 1NF아님>

 

 
e2
<그림 2 : NULL값 없고, 중복 기능열도 없음. 1NF 충족. (이 경우 2NF, 3NF 도 충족하는데 이건 아래에서 다 이해하고 다시 살펴보기 바람>

 

 

 

2NF(Second Normal Form) : 이행적 함수 종속이 있을 경우, 그것을 쪼갬.

즉 정적인 데이터에서 한 필드가 다른 필드를 정의할 수 있을 때
e3
<그림 : 종업원 필드가 근무지 필드에 영향을 준다. 종업원-근무지 를 따로 꺼낼 수 있다. 좀 더 멋지게(어렵게) 표현하자면, 근무지 필드가 종업원 필드에 함수종속적 이므로 분리하여야 한다.>
e4
<그림 : 함수 종속적인 필드를 분리. 2NF 만족(물론 1NF도)>

 

 

3NF(Third Normal Form) : 계산열 제거.

다른 열의 값을 계산해서 해당 필드에 가지고 있다.

mysql, mssql, oracle 모두 가능하다.

계산되는 열은 (개발자의 관점에서 보는 테이블 열에서) 제거한다.
e5
<그림 : 1NF만족. 2NF는 주민등록번호를 따로 분리할 수 있는지 봤는데 PK인 고객번호와 역할이 동일하므로 분리 안되더라. 무튼 2NF도 만족>

이 상황에서 계산 가능한 열을 삭제.

2NF 연결되는 것 분리 후에 3NF 계산할 수 있는 것은 삭제하면 된다.
e6
<그림 : 3 정규화 하는 모습. 삭제된 필드는 계산하여 복구 할 수 있으므로 계산열(계산필드)로 처리하거나 쿼리시 관련 계산을 하면 된다>

 

 

 

자료 참조 :

데이터베이스 정규화 - http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%A0%95%EA%B7%9C%ED%99%94

제 3 정규화 - http://www.officetutor.com/column/kkk-db/kkk_12.htm

'데이터베이스' 카테고리의 다른 글

JOIN 간단 정리  (0) 2017.03.23
데이터베이스 백업 및 복원  (0) 2017.03.23
정렬하면 1다음 11이 나올때 해결책  (0) 2017.03.23
기본적인 명령어 모음  (0) 2017.03.23
Posted by EL2A
알고리즘(CF)2017. 6. 17. 21:21

Given a string, find out if its characters can be rearranged to form a palindrome.




Example

For inputString = "aabb", the output should be
palindromeRearranging(inputString) = true.

We can rearrange "aabb" to make "abba", which is a palindrome.




Code

function palindromeRearranging(inputString) {

   

}

'알고리즘(CF)' 카테고리의 다른 글

20. arrayMaximalAdjacentDifference  (1) 2017.06.18
19. areEquallyStrong  (1) 2017.06.18
17. arrayChange  (1) 2017.06.17
16. areSimilar  (1) 2017.06.17
15. addBorder  (1) 2017.06.17
Posted by EL2A