일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spring
- jvm
- 프로그래밍언어론
- 모두를 위한 딥러닝
- C/C++
- 스프링 프레임워크
- 딥러닝
- Python
- 프로그래머스
- 시애틀
- STL
- binary search
- 라인플러스
- leetcode
- 파이썬
- 릿코드
- C++
- 다이나믹프로그래밍
- 백트래킹
- DP
- 머신러닝
- Spring Framework
- dfs
- 스타벅스
- 라인
- 백준
- BFS
- 알고리즘
- Java
- 벤쿠버
- Today
- Total
목록Study (35)
케이스윔의 개발 블로그
Spring Framework 프레임 워크란? 개발할 때 설계 기본이 되는 뼈대나 구조/환경입니다. 개발자들이 개발을 하기위한 업무를 추상적으로 만들어 놓은 틀이기 때문에 자신이 필요한 기능만 구현해서 사용하면 됩니다. 스프링 프레임워크는 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크입니다. 자바 개발을 위한 프레임워크로 종속 객체를 생성해주고, 조립해주는 도구로써 주요기능으로 DI, AOP, MVC, JDBC를 제공합니다. 스프링의 특징크기와 부하의 측면에서 경량 컨테이너제어 역행(Inversion Of Control): 말그대로 제어 흐름 구조가 바뀐 것입니다.(원래는 main()와 같이 프로그램이 시작되는 시점에서부터 각 객체들이 프로젝트의 흐름을 결정하고 사용합니다.) 하지만 스프링 프레임워크..
Spring Framework는 자바 기반이므로 Java 설치가 필요합니다. Java설치할 때에 들어본 적 있을법한 JVM과 JRE, JDK에 대해 알아보겠습니다. JVM(Java Virtual Machine): 말 그대로 해석하면 자바 가상머신입니다. Java byte code를 OS에 맞게 해석해주는 역할을 합니다. 자바 컴파일러에서는 컴파일 시 작성한 소스코드(.java)를 bytecode로(.class) 변역합니다. 이 .class 코드를 통해서 JVM은 현재 OS에서 실행시켜줄 수 있도록 변환합니다. 한번의 컴파일을 통해 만들어진 .class 파일이 있다면 어느 OS에서도 JVM이 있다면 실행시킬 수 있습니다. 어느 기기, 어느 운영체제에서도 실행될 수 있게 하고 프로그램 메모리를 관리하고 최적..
Garbage Collection: 더이상 사용하지 않는(참조되지 않는) 메모리를 해제하는 것을 말합니다. Garbage Collection 은 운영체제에서 다룰 수 있고, PL에서도 다룰 수 있고, 컴파일러에서도 다룰 수 있습니다. 어떻게 참조하지 않는 메모리를 해제해줄 수 있을지, 즉 어떻게 구현을 할 수 있는지 알아보겠습니다. 구현할 수 있는 방법은 크게 4가지가 있습니다. 1. Automatic reference counting(ARC) 참조의 개수를 자동으로 세어주는 것입니다. =가 할당될 때마다 오버로딩해서 count를 세어줍니다. =의 왼쪽, 오른쪽이 포인터인지, 사용이 되는지 table을 만들어서 어떤 포인터들이 사용되고 있는지 파악을 하고 사용되지 않을 때(0이 될 때) 해제를 시키도록 ..
Error: 컴파일 시 문법적인 오류나 런타임 시 NullPointer 참조와 같은 오류로 프로세스에 문제를 일으켜 프로세스를 종료시킬 수 있는 경우를 말합니다.(PL에서는 Unchecked Exception이라고도 합니다.)Exception: 프로그램 동작 도중에 예기치 않은 이상 상태가 발생하여서 수행 중인 프로그램이 영향을 받는 경우를 말합니다.(PL에서는 checked Exception이라고도 합니다.) Exception handling은 예외발생으로 인해 실행중인 프로그램이 비정상적으로 종료하는 것을 막고 정상적인 실행을 할 수 있도록 하는 작업입니다. Traditional Error Handling: 어떠한 함수를 호출하면 호출한 곳에서 함수의 return 값을 보고 에러가 났는지 아닌지를 체..
와 방금 알고리즘문제를 풀다가 모르는 부분이 있어서 아는 선배한테 물어봤는데 너무 신기한 알고리즘아닌 알고리즘을 들었다. 그 문제를 풀기위해 필요한게 c++에서는 해시맵이라고 친절히 알려주셔서 오늘은 해시맵 관련 컨테이너들을 공부하도록 하겠다! (이 글을 써둔게 2018.5.17 였는데 이어서 추가 및 수정한다.) 해시맵은 연관 컨테이너 중 하나이다. 예를 들어 vector나 list와 같은 컨테이너는 순서에 따라 값을 저장하지만 연관 컨테이너는 어떠한 key와 짝을 이루어서 값을 저장한다. 따라서 값을 넣고, 찾을 때에는 key가 필요하다! 대량의 자료를 저장하고 빠르게 검색하기 위해 사용된다고 한다. hash table을 만들어두면 O(1)로 검색을 할 수 있듯이 비슷한 것같다.(아니 그 개념을 적용..
LINE Message API 를 사용할 때 Webhook 설정을 해야했다. 사실 Webhook 이 뭘까 검색을 해보고 이러한 의미구나 정도만 생각하고 넘어갔었다. WebhookURL 자리에 내가 서비스 구축을 위해 만든 서버 URL을 쓰는 거라고 추측을 할 수 있었기 때문에 그랬던 것 같다. 그 당시에 공부했던 노트를 보면서 다시 개념을 읽어보니 잘 이해가 안갔다. 그래서 좀 더 찾아보고 어느정도 이해한 내용들을 글로 정리한다. Webhook 이라는 것은 웹 서비스를 제공해주는 서버 측에서 어떠한 이벤트(또는 데이터)를 외부에 전달하는 방법 중 하나이다. 내 공책에는 이렇게 적혀있었고 잘 이해가 안갔다! 다시 차례대로 정리를 해보겠다. 우선 Hooking의 의미를 알아야하는데 어떠한 액션 앞 또는 뒤에..
서버구축을 시작하려할 때 들었던 고민이 있었다. 서버 내부 클래스를 나누거나 모듈을 두는 이런 구성들에 대한 기준은 어떻게 세워야하지? 특정 기능을 구현하려고 서버를 구축해야했는데 처음 계획을 세울 때 어떻게 큰 모듈을 나눠서 구성하고 계획해야하는지가 고민됐다. 그래서 그 당시 구글링 했던 단어는 '서버와 데이터 처리를 나누는 기준' 이었다. 그리고 들어봤었지만 명확하지 못했던 웹서버와 WAS에 대한 내용을 알게 됐고 이 개념을 바탕으로 계획을 세웠었던 것 같다. 1. 웹서버: 일반적으로 웹서버라고 하면 클라이언트의 전반적인 요청에 대한 서비스를 제공하는 아키텍처를 말한다고 할 수 있다. 그런데 WAS와 함께 언급이 된다면 좀 더 구체적으로 설명을 할 수 있다. 웹 서버는 클라이언트가 서버에 요청을 하면..
파이썬으로 프로젝트를 진행해보면서 공부했었던 것들을 정리해뒀었는데 한 번 더 정리 겸 보완을 해보기 위해 글로 작성한다. 이전에도 한번 파이썬으로 프로젝트를 진행했었는데 그 당시에는 기존에 있었던 예시 코드를 참고하여 시작을 하다 보니 온전히 그 버전에 맞추어서 환경을 구축하고 개발을 진행했었기 때문에 버전관리에 큰 어려움이 없었다. 그런데 두 번째 파이썬으로 프로젝트를 진행하면서 이러한 부분에 대한 고려를 하지 않았더니 처음에 설치 실수로 2.X 버전의 파이썬을 설치해버렸었고, 이후에 환경 구축을 위해 이것저것 설치를 하다 보니 버전이 전부 엉망이 되어버리는 문제가 있었다. 물론 나는 하나의 프로젝트를 진행하기 때문에 깔끔히 지우고 새로 설치하면 문제가 되진 않겠지만 수많은 프로젝트를 진행하고 있었더라..