핵심 개념정리!!
1. 스프링은 다 멀티쓰레드이다!!!!!
스프링은 context switch가 일어난다
Node.js랑 무슨 차이가 있죠????? context switch없이 이벤트 루프에 담아놓았다가 처리하는거!
node.js는 내가 강의 중에 누군가가 우유 사오라고 하면? 노트에 적어놓고 우선 쌩깐다. 우선 promise만 해둔다! 나중에 사올께! (비동기)
알겠어 조금있다 사올께! 다른 사람이 화장실에 가서 손 씻고와! 하면??? 노트에 적어놓고 나중에 씻으로 갈께! 하는거
이제 강의 마치고 가는길에 손을 먼저 씻고 우유 사러가면 되는데....노드 js 는
스프링 쓰레는?? 자기의 분신을 만들어서 우유 사오라고 시킨다 이게 멀티쓰레드다.
민수에게 사오라고 시킨다. 민까지 부르고 앞으로 갔다가 다시 뒷걸음 그리고 다른 사람 철수에게 시킬때 철 까지 부르고 다시 ...
2. 프로시저란????
내가 save함수와 수정 함수를 같이 넣고 싶으면??? a라는 함수안에 save, update함수를 둘다 넣어두고 a함수를 때린다
a함수 앞에다가 이렇게 적어놓는다. begin transaction; =>트랙잭션 아직 안끝났으니까 아직 commit하지 않는다!!
즉, save만 하고 바로 commit하지 않는다.
마치면??? commit;
나의 오늘 일이 햄버거 먹는 일이다. 이게 오늘 나의 트랜잭션(일의 단위)
또 다른 일은 양치하는 일
햄버거 먹고 양치하는걸 하나의 트랜잭션이라고 볼 수 있다. 이 트랜잭션의 단위는 가변적이다.
인프런에 있는 스프링 강의 볼 것!!!!!!!!!!!!!!!!!
3. 오버라이딩
부모함수를 무효화시키는 것!!!
오버라이딩 효과는??? 바인딩되어서 자식을 때려준다!!!!!
여기서부터 패턴도 만들어지고 좋은 코드가 나온다.
4. 상속은???
부모의 함수나 부모의 변수를 재사용하기 위함 이라고 하면 틀린답!!!! 재사용할거면....composition하면 된다(부모 변수를 private final로 적어놓고 생성자로 활용해서 주입받으면 된다)
추상화의 용도이다. 타입을 일치시키기 위함이다!!!!!!!!!
사실, 부모의 함수,변수를 재사용하기 위함도 맞지만,,,,,
DIP Dipendency Injection 역전 을 위함이다!!!!!!!!!!!!!
의존성 역전 로직!!
홍길동이 있고 장보고가 있는데 ,,, 홍길동이 장보고에게 커피를 하나 줄거다
그러면 홍길동은 커피를 만들어주는 바리스타! 커피를 만들어주는 함수를 들고있다
홍길동은 커피 생성의 책임이 있다.
여기서 오브젝트는???? 홍길동, 장보고, 커피
커피는 홍길동이 만든다. 갑자기 바리스타 홍길동이 그만두고 임꺽정이 들어오면??? 프로그램이 망가진다.
왜?? 임꺽정으로 바꿔야하니까. ..
그래서! 의존성 역전이란??? 바리스타라는 클래스를 만든다. 바리스타는 장보고에게 커피 만들어서 준다
바리스타 (부모)
|
홍길동(자식)
홍길동은 바리스타이면서 홍길동이다(다형성)
임꺽정도 바리스타를 상속하게 만들면!! 프로그램이 망가지지 않느다.
장보고도 고객이라고 추상화시킨다.
커피도 추상화되어있는거다. 커피의 종류에는 아메리카노, 카페라떼 등등이 있으니까
처음에는 구체적으로 짰다가 나중에 추상화되게 코드가 짜졌으니까 역전된거다!!!!!!!!!
오버라이딩을 안하면 프로그램 구현을 못한다. 바리스타한테 make라는 함수를 때렸다면??? 홍길동에 make가 때려져야한다. 바리스타의 함수를 무효화시키고 홍길동의 make가 때려진거다
CI(지속적 통합) => Continuous Integrity 프로그램에게는 CI가 돌아간다. 항상 수정이 끝도 없이 일어난다!
지속적 통합이 되려면! 코드가 오버라이딩하면서 추상화 시키고... 해야한다.
커피만 만들었다가 짬뽕도 만들고 싶을수 있다.
하나의 클래스는 하나의 책임만 가지게한다!! 명확하게!!! 근데 이렇게 안하면???
짬뽕클래스에서 문제가 터졌는데 바리스타 부분 고치라고 한다. .. 이런게 많아지면 복잡해지고 나도 헷갈린다
노마드 코더? 백기성??
<이력서>
1.성장과정
2.장단점
3.지원동기
4.입사후 포부
먼저, 사진부터 본다. 사진에서부터 태도가 나타난다. 사진속 옷차림 깔끔하게.. 머리도 단정하게
내용에서 오타나지 않게!!!!!
그리고 개발자는 기술소개서를 적어야한다. 중요한건 면접시 대답을 잘해야함
기술소개서에 내가 할줄 아는거 적는데.... 스프링부트 JPA라고만 적으면? 그렇구나 하고 넘어간다.
그 밑에 블로그 글 링크를 걸어놓는다. 적은 기술 밑에 블로그 링크를 넣어놓는다.
MYSQL 기술 적어놓고 그 밑에 링크 걸어놓기
Tip>
회사가면?? 회사는 세모 아니면, 다이아몬드를 들고있다.
인재상! facebook에는 relationship을 적어놓음. google은 통합이 적혀있다.
세모에 책임감,글로벌,열정 이 적혀있다면???
하나 고른다. 책임감!! 한가지를 기억시켜야한다. 여러가지 positioning하지 말고!!
이력서 읽고나서 책임감하면? 나구나 떠올라야한다.
내가 어떤 경험을 통해서 책임감이 강해졌는지 써야한다
장단점은?????? 책임감이 강하다는 장점이 있다면??? 사례를 들어서!! 어떻게 어떻게 해서 이렇습니다
이 책임감때문에 생기는 단점은??? 책임감이 강해서 생기는 이러이러한 단점이 있었다.
지원동기!!! 책임감을 바라는 이상향이 있기때문에 이 회사에 지원한다
입사후 포부
내가 책임감이 강하기때문에 이 회사에서 어떤일을 할 수 있는지 적자
책임감이 강해서 이 회사에서 미래에 무엇을 하겠다!! 목표를 적는게 아니다. 회사에서 이런 사람이 되겠다는 목표가 아니라.... 어떤 시스템을 구축하겠다, 글로벌한 회사를 만들겠다는 이런말 말고!!
내가 미래를 위해서 어떤 어떤 것들을 하겠다는 걸 구체적으로 적는다. 가정을 적는... 출근도 일찍,,, 회사에서 하는 일들이 있을떄 블로글도 정리하고 사내에서 글로 정리한걸 공유도 하고싶고...결과를 적는게 아니다 결과는 알수 없다. 결과는 뜬구름 잡는 소리다.