본문 바로가기

전체 글141

2022 4분기와 지난 한 달을 돌아보며 더 열심히 보낸 4분기였습니다. 할 수 있는 최대한으로 열심히 일해보고, 그래서 그런지 뭔가 더 잘해졌다 라는 생각이 들었습니다. 영어도 그렇고, 업무도 그렇구요. 한국 팀에 같은 Cloudflex 팀 멤버로 같이 일하게 될 인턴분과 정규직 팀원분이 한분씩 들어오셔서, 온보딩 하면서 같이 배워나가고 있습니다. 뭔가 평탄한 길 위에서 조곤조곤 길게 알려주지를 못해서 죄송할 따름입니다. 그래도 같이 노력해주시고 도움 주셔서 항상 감사하다고 생각하고 있습니다. 팀원이 있다는건 솔직히 큰 힘과 동기부여가 됩니다. 뭔가 잘하는 모습도 보여주고 싶고, 같이 문제를 나누어 해결하고 앞으로 나아가는 사람이니까요. 예상치 못한 곳에서 배우고 나도 나중에 저렇게 해야지 드는 생각도 있습니다. 한 6개월간 팀원 없이 한국에.. 2023. 2. 18.
2022 3분기를 돌아보며 열심히 보낸 3분기였습니다. 할수 있는 최대한으로 열심히 일해보고, 운동도 열심히 하고. 회사에 레퍼럴도 해보고, 사이드 프로젝트를 하나 터트리고 새로운 프로젝트를 만들고. 이 글을 쓰며 7 - 9월 달력을 돌아보며 그래도 절대 헛되이 보낸 시간은 없다고 생각합니다. 좋은 사람도 소개받아서 감사하게 잘 만나고. 감사하게 열심히 노력하려고 하고 있습니다. Cloudflex 팀에서 일하면서 특정 프로젝트의 기획서를 작성하고 계획을 세우고 개발하기도 했고, 어느정도 이 팀에서 의견을 주고받고 주도적으로 일할 수 있는 위치에까지 왔다고 생각합니다. 그래서 나름 여유가 생겼다고 판단하고 S3 팀 온보딩을 같이 해보자 라는 생각으로 매니저님과 추가적으로 주단위 온보딩을 하고있는데, 혼자 문서보고 코드 읽고 데이터 .. 2022. 10. 15.
클루미오(Clumio) 회사 적응기 (부제: 2022년 2분기를 돌아보며) 이 회사로 옮긴지 벌써 4달째라는게 실감이 나지 않네용. 정말 한달도 채 안된 것 같은데 말이죠.. 짧은 기간동안 미국도 한번 다녀오고, 서비스가 유럽에 진출했고, 인도 및 미국에서 엔지니어들이 계속해서 합류하고 있습니다. 한국지사 초기 멤버로서 미국 팀원들과 소통하고 기능을 붙여가는게 정말 쉽지는 않았지만 (물론 실력이 좋지 않아 그럴수도) 어쨌든 여기까지 왔고, 새로 들어오는 멤버들은 어떻게든 빠르게 온보딩 해서 임팩트를 낼 수 있게끔 도울 수 있을 것 같습니다. 현재 재직중인 클루미오에 대해서 간략히 소개를 하면, Cloud 에서 Cloud 로 백업을 하는 서비스를 구현하고 있습니다. 주로 AWS 에 대한 백업 서비스를 제공하고, 기반 기술이 어느정도 닦여 있는 상황이라 그걸 바탕으로 다양한 클라우.. 2022. 7. 21.
블로그의 행방 & 근황 새로운 회사로 이직한 후, 기존 계획들이 많이 바뀌었습니다. 회사에서 주로 업무할 때 영어를 하다 보니, 내가 갖고 있는 아이디어나 기술도 팀원분들에게 검증을 받고 싶은데, 한글로 쓰면 읽기 힘드실것 같고 영어로 티스토리에 쓰자니 뭔가 카테고리가 이상해지는 것 같고 외국에서 어떤 블로그 플랫폼이 있는지 봤는데 미디엄은 글을 통해 수익화를 하기 때문에 가끔씩 글을 못보는 사용자가 생기고 구글 블로거는 너무 캐주얼하고 (약간 네이버블로그 감성) dev.to 는 게시글 연재와는 좀 거리가 먼 것 같더라구요. 그럼 그 다음부터는 hosted blog 인데 wix 나 wordpress 는 너무 헤비한것 같구, 실제로 페이지 로딩 속도도 그렇게 만족스럽지는 않구 사용법을 배우기도 귀찮고 무엇보다 자유도가 너무 떨어.. 2022. 5. 30.
생에 처음 가본 미국 이야기 [2] 뉴욕 새 회사에 온지 거의 한달이 되어가는데, 이제 뉴욕 회고를 하다니.. 왜케 미뤘느냐.. 그냥 좀 여유가 없었는데요 이제 좀 정리가 되가는것 같아 후딱 정리해봐야겠어요 뭐든 미루면 안될것 같지만, 또 누구는 미루는 건 천재들의 특징이라고 하네요 ㅋㅋ 뉴욕 도착쓰 RSNA 행사가 끝나고 관광 목적으로 슝 도착했습니다 미국 동부에 와서 진짜 날씨가 좋지 않은 날이 드물 정도였는데요, 운이 좋았다고 하더라구요 첫날엔 짐만 간단하게 풀고 뉴욕 길거리 음식 명물인 할랄가이즈를 방문했습니다. 맛도 좋고 다 좋은데, 이게 문제가 12월쯤이라 밖에가 암만 높아도 10도 정도 되는 날씨여서, 넷이서 길거리 벤치에 앉아 벌벌 떨면서 먹었습니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 진심 뉴욕은 없는게 없더군요. 몇번 지나가면 다 포토스.. 2022. 4. 18.
생에 처음 가본 미국 이야기 [1] 시카고 & RSNA 사실은, 4분기의 이야기를 쓰고 싶었는데, 여러 일정들이 겹쳐 정신도 없고 해서 안쓰고 넘어가게 되었는데 요즘 들어 여러 일정들이 정리되고, 스케줄이 안정화되서 하나씩 풀어가보려고 합니다. 인생에 있어 의미있는 순간들 중 하나가 처음 경험한 것이라고 하는데요 중학교때부터 미국 드라마를 보면서, 진심 미국은 꼭 한번 가보고싶다 라는 생각을 오래 했었습니다. How I met your mother 도 그 배경이 뉴욕이였고, 30rock 도 록펠러 플라자가 배경이였구요, Glee 는 그냥 좋아서.. 특히 미드 하우멧에 좀 큰 영향을 받아서 그런지, 뉴욕에는 꼭 가봐야겠다는 생각을 어릴적부터 했습니다. 그러던 와중 회사에서 북미영상의학회(RSNA) 에 회사에서 만들 상품을 전시하겠다는 계획을 세웠고 개발팀 인원.. 2022. 3. 9.
[1] 쇼팽 스케르초 2번 (1) 코로나 시국에 오프라인 모임을 하기도 힘들고 곧있으면 위드코로나로 전환한다는 이야기도 있고.. 요즘 직장 + 일 외의 사회적인 활동이 좀 덜해서 아쉽다는 생각을 많이 했습니다. 그래서 그냥 소소한 취미로 음악 생활을 하며, 여러 생각들을 풀어보려고 합니다. 곡을 연주하고, 업로드를 한 후에, 이 파트에 대한 글을 쓰려고 했습니다. 순조롭게 녹음하고 사클에 업로드하고 기다리고 있다가 온 한통의 메일. 클래식 곡이라서 그런지, 저작권에 잘 걸리는 것 같습니다. 사실 똑같은 곡 악보대로 연주하다보면 운 없이 얻어걸릴 확률이 더 높을 것 같습니다. https://soundcloud.com/tvt4vrrns0yy riverandeye Listen to riverandeye | SoundCloud is an aud.. 2021. 10. 6.
2021 3분기를 돌아보며 좀 더 바쁘게, 그치만 더욱 평범하게 돌아가는 3분기였습니다. 국내 코로나 현황이 점점 안좋아져서 그런지, 밖에서보단 주로 집에서 지냈네요. 친구들 집에 놀러와서 음식도 해주고 (맛있지는 못했지만), 그런 저런 일들이 있었습니다. 8월에 강릉 가서 먹은 조개 무한리필 집인데, 처음부터 끝까지 고퀄리티로 리필을 해주심 또먹고싶다ㅠㅠ (장소는 여기) 요즘 같이 즐겁자고 만나는 모임을 거의 가지지 못해서, 지금 하는 일들이 어느정도 안정되면 새로운 모임이나 취미활동에 참여하고 싶다는 생각을 합니다. 취미도 혼자 하는건 재미 없고, 함께 목적을 갖고 목표를 세워서 하는게 제일 재밌습니다. 혼자서 멋대로 하는건 제 성격상 오래 못가더라구요. 환경과 사람을 바꿔야.. --------------------------.. 2021. 10. 2.
2021 2분기를 돌아보며 바쁜 나날들의 연속입니다. 해야 할 것, 하고싶은 것들이 많아 머리속이 복잡해져 아무것도 못하는 것 보단 머리를 비우고 몸이 움직이면 나머지는 시간이 해결해줄 일인가보다 생각하며 지내고 있습니다. 백신 맞고 회고글 써야지 했는데 벌써 7월 10일 직장 다니니까 진짜 시간이 너무 빨리 지나가는거 같아요 그만큼 발전하거나 성숙해지고 있다고 느끼지도 못한 채 말이죠 그래도 좀 다른건 새로운 것들을 경험하고 시도하고 있다는 건 확실해요 생판 처음해보는 앱 개발도 해보고.. 등등 뭘 알던 아는거 자체는 힘이 되는 것 같아요, 롤도 그렇고 롤하는 톡방에 들어가있어서 가끔씩 하는데, 이게 워낙 고인물게임이다 보니까 초보가 가서 할 수 있는게 없어요 스팀게임 등 새로운 게임을 좀 해보려고 요즘엔 컴퓨터 사양을 보고 있.. 2021. 7. 10.
2021 1분기를 돌아보며 안정되지 못하고 정신없던 작년 한해를 지나보내고, 작지만 알찬 회사에서 첫 시작을 하게 되었다. 첫달엔 재택으로 시간을 많이 보냈고, 2월부터는 출근을 하게 되었는데, 집부터 회사까지 편도로 1시간 30분 정도 걸린다. 멀어서 좀 피곤하긴 해도 7호선 초반에 타서 항상 앉아서 건대입구까지 갈 수 있고, 회사에 가는 길에 자전거로 다리를 건너는 그 느낌이 진심으로 좋다. 서늘하면서 햇빛 따뜻하고 구름 한점 없는 날에는 사진이 정말 잘 나온다. 자연스럽게 날씨가 좋은 만큼 기분도 좋아지는 것 같다. 그냥 하늘이 너무 예뻐서. 다른 이유는 필요없다. 진짜, 아름다운 날씨만큼 마냥 기분 좋기가 힘들다. 출근길이 기분 좋은 것도 이것 때문이다. 누가 취미가 뭐냐고 물어보면 원래는 피아노 연주라고 이야기를 했는데,.. 2021. 3. 29.
블로그에서 노션으로 요즘 일을 하면서 여러 삽질했던 과정을 기록화하기 위해 노션을 썼는데 이게 쓰다 보니까, 개인 메모 용도로도 쓸만하겠구나 라는 생각이 들었습니다. 특정 토픽에 대해 학습할 때 TODO와 Backlog 를 꼭 두는 습관을 들이고 있습니다. 배우는 데에 순서가 있고 그만큼 체력 소모도 있어서 어느정도 계획을 쪼개서 수행하면 오래 갈 수 있습니다. 나머지 양식은 딱히 제한을 두지 않는데, 쓰다보니 어느정도 제 스스로 포맷을 만들어가고 있는 것 처럼 보입니다. 마치 코드를 규칙적으로 정해진 위치에 두고 가져다 사용하는 것 처럼 말이죠 여러가지 장점이 많은데요, 제가 생각했을 때 가장 큰 장점은 모든 문서를 어떤 곳에서든 쉽게 검색할 수 있다는 것입니다. 일반 블로그는 이전에 작성했던 기록을 다시 보는 것이 쉽지.. 2021. 2. 5.
[9] [Class 5] - 2056 작업 www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 작업의 우선순위를 두어 처음에는 지나가는 시간을 1씩 올려서 하려고 했는데 그러다보니 큐에 있는 것들이 시간이 다 됐는지를 체크하는게 너무 이상한것 같아서 그만뒀고 먼저 기본 정석이 되는 위상정렬 그래프 구조에서 A를 indegree가 0이 된 작업, B를 A가 끝난 다음에 할 수 있는 작업이라고 생각하면 A가 끝났을 때, B가 걸리는 총 시간 = max(B의 총시간, A가 끝나는 시간 + B가 걸리는.. 2021. 1. 27.
[8] [Class 5] - 백준 1806 부분합 www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 팀원 친구들이 레벨 6 풀고 있을때 나는 레벨 5에서 맞왜틀하고있어서 맘이 안좋았다 그치만 역시 꾸준한 노력이 답이기에.. 오늘도 존버.. 연속된 수의 부분합 중에 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 문제 N이 10만이여서 복잡도가 O(NlogN) 이하로 나와야 된다고 생각했고 우선 구간 합을 다 구해놓고, 구간합은 크기에 대해 정렬된 상태이기 때문에 이분 탐색을 이용해서 적절.. 2021. 1. 26.
[7] [Class 3] - 백준 11727 2xn 타일링 2 www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 딱 보면 알지만 단순한 동적 프로그래밍 문제입니다. 점화식을 세워서 문제를 해결해야하는데, 점화식 세우는게 어찌 이리 어려운지.. 따로 문제들 풀면서 연습을 해봐야할 것 같습니다. #include using namespace std; long long dp[1001]; int main(){ ios_base :: sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; dp[1] = 1; dp[2] .. 2021. 1. 23.
[6] [Class 3] - 백준 11724 연결 요소의 개수 www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 아까 다른 문제를 DFS로 풀어서 이건 그냥 Union find 로 풀어보았다. // https://www.acmicpc.net/problem/11724 // Connected Component // Union find 으로 해도 되고, dfs로 해도 되고.. #include using namespace std; int parent[1001]; in.. 2021. 1. 23.
[5] [Class 3] - 백준 10026 적록색약 www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 정말 간단하게 dfs로 풀었다. 맞왜틀 한걸 봤더니 인덱스 범위 비교할때 N을 안쓰고 100을.. // 10026 https://www.acmicpc.net/problem/10026 // dfs #include using namespace std; char map_[100][100]; bool jrsy[100][100]; bool notjrsy[100][100]; int N; int dx[4] = {0,.. 2021. 1. 22.
[4] [Class 3] - 백준 9019 DSLR www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 처음에는 rotate함수 이용해서 string을 돌려서 짰는데 그러다보니 시간 초과가 나는 것이다. int로 바꿔 계산하니 올바른 결과가 나왔다. #include using namespace std; bool visited[10001]; int main(){ ios_base :: sync_with_stdio(false); cin.tie(NULL); int T; cin >> T; queue q; wh.. 2021. 1. 22.
[3] [Class 3] - 백준 7662 이중 우선순위 큐 www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 양쪽 방향으로 큐를 만족시키면서 중복된 값을 넣을 수 있어야 해서 깔끔하게 multiset을 사용했다. multiset에 대한 설명은 다음 게시글에 자세히 나와 있습니다. // 이중 우선순위 큐 // multiset 이용해서 해결 #include typedef long long ll; using namespace std; int main(){ ios_base :: sync_with_stdio(false); .. 2021. 1. 22.
[2] [Class 3] - 백준 1697 숨바꼭질 www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 해당 지점으로 이동하는 규칙이 있고 여러 방법중 가장 빠른 방법의 횟수를 구하는 것이 목표인데요 모든 케이스를 조사하는 것 보단, 가장 빨리 결과가 등장하는 경우를 찾는것이 가장 적합해 보입니다. 이럴 땐 역시 BFS만한 것이 없다고 생각합니다. 하나 찾으면 while문 벗어나서 출력하게끔 구성하였습니다. // BFS #include using namespace std; bool vi.. 2021. 1. 21.
[1] [Class 3] - 백준 5525 IOIOI www.acmicpc.net/problem/5525 5525번: IOIOI 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) www.acmicpc.net 문자열 내에 특정 단어가 몇번 반복되냐를 계산하는 것이 목적인 문제입니다. 제가 푼 방식은 이렇습니다. 찾아야 하는 단어가 I와 O의 반복이여서 한번 패턴이 매칭이 되면, 그 다음 앞의 2개만 더 IO면 되기 때문에 매칭에 성공할 시, 매칭된 단어의 갯수를 2를 줄이고 현재 위치에서 계속 판단하는 식으로 해서 시간 복잡도는 O(n) 으로 구성하였습니다. // 문자열 비교 #include using namespace std; int mai.. 2021. 1. 21.
2021 고려대학교 해커톤 주최 후기 해커톤을 뜬금없이 어떻게 열게 되었을까 하면, 무려 1년 전에 참여했던 행사인데, 이때 행사 리딩하시던 선욱님이 동아리 단위에서 행사를 진행하게 되면 좋지 않을까? 라고 말하셨는데 이런 행사 한번 만들어보면 좋겠다 라고 생각했었고, 연락처를 잠깐 주고받았었다. 열어야겠다는 막연한 생각은 있었는데, 6개월 지나고 또 연락이 와서 여는걸 확정했고 본격적으로 10월 10일부터 준비를 시작했다. 기획 구성원은 총 9명이였는데, 어떤 기획이나 회의던 5명이 넘어가면 진행이 쉽지 않고, 개별 사안들에 대해 모든 인원의 목소리를 반영하기 힘들다 그래서 회의를 항상 전원이 참여하는 것 보단, 시간 되는 인원만 모여 그 날에 다뤄야 하는 이슈들을 정했다. 그리고 구성원 별로 역할을 분리하여 의사 결정을 빠르게 만들었다... 2021. 1. 13.
2020 4분기를 돌아보며 올 한해는 정말 많은 일들이 있었다. 부캠 끝나고 네이버 인턴, 동아리 웹사이드 개발, 학교 수료, 네이버 클라우드 인턴, 클래스101, 고카톤 준비.. 좋은 기억들도 있고 나쁜 기억들도 있고 이런 저런 일들 덕에 변한 것들이 많다. 10월 가장 먼저 가나로 파견근무를 하게 되는 친구를 보내는 것으로 10월을 시작했던 것 같다. 영어 스피치클럽에서 회장 역할을 오래 한 만큼 리더쉽이 뛰어난 친구이다. 나와 같은 나이의 친구지만 벌써 3년차로 회사에 다니면서 여느 남자들도 쉽게 생각할 수 없는 일들을 하고 있는데 정말 대단하다고 생각한다. 10월엔 여러 크고 작은 회사에 이력서를 내고 면접을 보았다. 다른 직군에 비해 개발자에게 있어 면접은 질의응답 후 피드백을 통해 개선점과 고민거리를 던져준다. 정체된 .. 2020. 12. 31.
[1] 백준 1074 Z 2년 전에는 몇 시간동안 쩔쩔 맸던 문제인데, 딱 보자마자 풀 수 있어서 매우 기분이 좋네요 ㅎㅎ www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 코드 자체는 이쁘지 않지만, 직관적으로 구성하였습니다. #include using namespace std; int rec(int n, int r, int c){ if(n == 1){ return 2 * r + c; } int half = 1; for(int i = 0 ; i < n - 1 ; i++) ha.. 2020. 12. 27.
[12] 스프링 프레임워크 핵심 - SPEL, Null Safety 해당 글은 백기선의 스프링 프레임워크 핵심 강좌를 듣고 정리한 것입니다. SPEL SPEL은 객체 그래프를 조회하고 조작하는 기능을 제공합니다. Expression Language 의 기능 및 메소드 호출, 문자열 템플릿 기능을 제공해야 하는 경우에 사용됩니다. @Value("#{1 + 1}") int value; @Value("#{'hello ' + 'world'}") String greeting; @Value("#{1 eq 1}") boolean trueOrFalse; 다음과 같이, Value annotation의 String 값에 표현식으로 넣을 수 있습니다. 헷갈리는 부분은 # 와 $의 차이인데요 #{..}는 Spel 문법으로, property placeholder syntax도 Spel 문법 내.. 2020. 12. 16.
[9] 스프링 프레임워크 핵심 - ApplicationEventPublisher, ResourceLoader ApplicationEventPublisher ApplicationContext가 상속받는 또다른 인터페이스인 ApplicationEventPublisher 를 소개하겠습니다. 이 인터페이스는 옵저버 패턴의 구현체로 이벤트 기반의 프로그래밍을 할 때 유용합니다. 스프링 4.2 이전의 경우 이벤트를 발생시키기 위해서 이벤트 클래스를 선언하되 ApplicationEvent 를 상속하여 생성자를 오버라이딩 합니다. public class MyEvent extends ApplicationEvent { public MyEvent(Object source) { super(source); } } 이 이벤트는 Bean으로 등록되지 않고, 원하는 정보를 담아서 전달해주는 매개라고 생각하면 됩니다. 이벤트를 발생시키는 지.. 2020. 12. 14.
[8] 스프링 프레임워크 핵심 - MessageSource applicationContext가 가지고 있는 MessageSource 기능을 알아보겠습니다. MessageSource는 i18n, 국제화와 관련된 기능입니다. 이 기능또한 ApplicationContext 에 넣어놓아 국제화에 대한 기능을 수행 할 수 있습니다. ApplicationContext.getMessage 메소드를 이용해서 메시지 소스를 가져올 수 있는데요 그럼 메세지를 어떤 방식으로 정의를 해야하냐면 스프링 부트를 사용한다면 별다른 설정 필요없이 messages.properties 로 정의해두면 됩니다. resources 폴더에 다음과 같이 messages.properties와 messages_ko_KR.properties 를 생성합니다. messages_en_US.properties엔 예.. 2020. 12. 14.
[7] 스프링 프레임워크 핵심 - Environment, Profile, Property ApplicationContext 가 가진 기능이 BeanFactory 외에 여러가지 있습니다. 그 중 EnvironmentCapable 이 제공하는 Profile 과 Property 기능을 살펴보겠습니다. Profile Profile은 Bean들의 묶음으로, 어떤 환경입니다. 테스트 환경, 프로덕션 환경이 구분된 대상들을 의미합니다. 각각의 환경에 대해 다른 Bean 을 사용하거나 특정 Bean을 등록하는 경우를 위해 Profile 기능이 도입되었습니다. 해당 기능은 Environment라는 인터페이스를 이용하여 적용할 수 있습니다. public class AppRunner implements ApplicationRunner { @Autowired ApplicationContext ctx; @Overr.. 2020. 12. 5.
[6] 스프링 프레임워크 핵심 - Component Scan, Bean Scope ComponentScan Spring 에서 자동으로 컴포넌트 Scan이 되는 이유는 위 ComponentScan 어노테이션 덕분인데요 Component Scan에서 가장 중요한 값이 basePackages 입니다. basePackage 값이 문자열인데, 이는 type-safe 하지 않아서 클래스를 전달하려면 basePackageClasses를 이용합니다. 컴포넌트 스캔의 시작점은 위 @SpringBootApplication 에서부터 시작합니다. 위 클래스를 담는 패키지와 그 하위 패키지에 명시된 @Component들을 모두 스캔합니다. (밖에 있는 건 안됩니다) 간혹 스프링을 쓰다가 Bean 주입이 잘 안되면 어디서부터 어디까지 Component Scan이 되는지 잘 살펴보아야 합니다 . Componen.. 2020. 12. 5.
[5] 스프링 프레임워크 핵심 - Autowired IoC Container는 의존성을 주입할 때 필요한 의존 객체의 "타입"에 해당하는 빈을 찾아서 주입해줍니다. 생성자를 이용하기 @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = bookRepository; } } 다음과 같이 생성자를 정의한 후 @Autowired 어노테이션을 명시하여 사용합니다. Setter를 이용하기 @Service public class BookService { BookRepository bookRepository; @Autowired public void se.. 2020. 12. 4.
[1] 네트워크 키워드 한줄 정리 컴퓨터 네트워크 - 컴퓨터 간 연결되어 있는 상태 패킷 - 네트워크를 통해 전송되는 작은 데이터 조각 대역폭 - 네트워크에서 이용 가능한 최대 전송 속도 (정보를 전송할 수 있는 단위 시간당 전송량) LAN - Local Area Network - 집, 사무실, 빌딩 등 소규모의 영역을 커버하는 네트워크 WAN - Wide Area Network - ISP가 제공하는 서비스를 사용하여 구축된 네트워크 ISP - Internet Service Provider - LG, KT, SKT 등이 있음 공유기 - 가정용으로 만든 라우터 - 요즘엔 라우터 기능 및 허브, 스위칭 허브, 방화벽 등의 여러 기능을 제공한다. DMZ - DeMilitarized Zone - 내부와 외부 사이에 존재하는, 외부에게 공개하기 .. 2020. 12. 1.