반응형

분류 전체보기 135

[Spring 기본] 1. 객체 지향 설계와 스프링

어떻게 스프링이 등장하게 되었는지 짤막하게 정리한 글입니다. 실제로 '봄'이라는 뜻에서 spring 이라는 이름을 갖게 되었다는 것이 인상깊었습니다. EJB 지옥 - 예전 개발자들에게 있어 사용하던 EJB는 이론은 좋았으나 구현은 너무 힘들었다고 합니다. 그래서 자바로 돌아가자는 움직임이 생겼습니다. EJB에서 Entity Bean - ORM 기술을 사용중이었는데요, 너무 힘들어하던 개발자 2명이 각각 오픈소스를 개발했습니다. Hibernate : EJB 엔티티빈 기술을 대체. JPA 새로운 표준 정의 Spring framework : EJB 컨테이너 대체, 단순함. 사실상 표준 기술 그 후 EJB에서는 Hibernate 를 만든 개발자 데려와서 JPA를 만들었습니다. JPA: 표준 인터페이스를 만들고,..

개발/java 2023.12.08

1. How does the internet work? & 2. What is HTTP?

1. How does the internet work? 인터넷은 표준화된 프로토콜의 집합들로 각각 통신하는 컴퓨터들의 글로벌한 네트워크입니다. How does the Internet Work? The Internet Explained How Does the Internet Work? Introduction to Internet How does the Internet work? How the Internet Works in 5 Minutes How does the internet work? (Full Course) 2. What is HTTP? Everything you need to know about HTTP What is HTTP? Full HTTP Networking Course An overvie..

Backend Roadmap (백엔드 CS 공부 언제 다해?)

안녕하세요. 저는 백엔드 개발자 지망생입니다. 취업, 면접 준비를 위해 CS 공부를 하다보니, 어떻게 공부할 지 다시금 막막해져올 때가 있더군요.. 원래는 행동파이지만 생각하는 시간을 가져서 방향을 잡고 가고 싶어서 고민을 하루정도 하면서 공부하기 좋은 사이트를 찾아보았습니다. 저는 특성상 강의를 오래 보지 못합니다. 원래 그랬던 것은 아닌데, 개발 공부를 하다보니 바로바로 써먹을 때 얼른 찾아서 쓰고 기억해두는 게 제 성향과 맞더라구요. 그리고 강의를 오랫동안 가만히 보다보면 답답해서 못하겠더라구요. 성격이 조금 급해졌나봅니다. 그래서 저에게 맞는 방법이 뭘까 고민해보았는데요, 저에게 맞는 방법은 이것이었습니다. https://roadmap.sh/backend 많은 분들이 아실만한 사이트입니다. 백엔드..

백준 1107 - 리모컨 - 다이나믹 프로그래밍 & 브루트포스

https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 www.acmicpc.net 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 ..

백준 1182 - 부분수열의 합 - 브루트포스 , not 투 포인터

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 부분수열이라는 이름에 걸맞게 투 포인터 알고리즘일 거라고 생각해서 풀이했으나, 문제점을 발견했다. 그 사례는 다음과 같다. 5 3 1 1 1 1 1 이 경우 답은 5Combination(3) = 10인데도 답이 5가 나오는 문제였다. 생각해본 결과 이건 앞으로만 가면서 세기 때문에 중복된 숫자가 있을 경우 각각의 조합의 경우의 수를 찾기가 어렵다는 판단이 들었다..

백준 1644- 소수의 연속합 : 에라토스테네스의 체, 투 포인터 알고리즘

https://www.acmicpc.net/problem/1644 문제 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 소수는 반드시 한 번만 덧셈에 사용될 수 있기 때문에, 3+5+5+7과 같은 표현도 적합하지 않다. 자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구..

20대의 6년 째 헬스하는 이야기

체력의 한계를 느껴서 30대부터 운동하게 된다는 유명한 떠다니는 이야기가 있다. 나의 경우, 그게 20살이었다. 남들보다 체력이 약하다는 건 단순히 체력이 약하다는 문제에서 그치지 않았다. 학업에 집중하기 위해 들이는 노력이 남들보다 배로 들었다. 오래 앉아있다보니 허리 디스크쪽에도 문제가 생겨 병원을 들락날락거리기 일쑤였다. 이게 지속되다보니 더 나은 삶을 꿈꾸기가 살짝 어려워지기도 했다. 내가 항상 이런식이라면 앞으로 일을 할 수 있을까..? 싶은 걱정이었다. 머리론 욕심껏 공부하고 싶어도 몸이 받쳐주지 않는 다는 건, 꽤나 좌절스러운 문제였다. 문제를 인식하고 난 후, 집 근처에서 헬스장에 등록해서 PT를 등록했다. 당시 감사하게도 문제를 공감해주셨던 엄마의 지원 덕이었다. 운좋게도 실력이 뛰어난 ..

끄적 2023.11.24

백준 1092 - 배 - 그리디

무게 제한이 더 큰 크레인이 더 무거운 물건을 드는 것이 유리하다. 그리디라는 것을 검증하기 위해 다음과 같은 과정을 거쳤다. - 무게 제한이 더 작은 크레인이 무게가 무거운 물건을 들었을 때의 정답이 있다. -> 무게제한이 더 큰 크레인이 그 물건을 들어도 정답이 될 수 있으므로, 합당하다. 부분구조가 가능하기 때문에 전체 구조가 가능하다는 논리하에 검증한 것이다. 위를 구현하기 위해 크레인의 무게 제한, 물건의 무게를 내림차순으로 정렬한뒤, 크레인이 물건을 순회하면서 들 수 있도록 했다. 다만, 크레인들은 무게가 무거운 물건은 스킵하되 더 가벼운 물건을 들 수 있도록 해서 전체 크레인이 최대한으로 물건을 들 수 있도록 했다. 크레인이 운반을 못하는 edge case는 무게 제한이 가장 큰 크레인이 무..

[Programmers] PCCP 기출문제 2

[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 세로길이가 n 가로길이가 m인 격자 모양의 땅 속에서 석유가 발견되었습니다. 석유는 여러 덩어리로 나누어 묻혀있습니다. 당신이 시추관을 수직으로 단 하나만 뚫을 수 있을 때, 가장 많은 석유를 뽑을 수 있는 시추관의 위치를 찾으려고 합니다. 시추관은 열 하나를 관통하는 형태여야 하며, 열과 열 사이에 시추관을 뚫을 수 없습니다. 예를 들어 가로가 8, 세로가 5인 격자 모양의 땅 속에 위 그림처럼 석유가 발견되었다고 가정하겠습니다. 상, 하, 좌, 우로 연결된 석유는 하나의 덩어리이며, 석유 덩어리의 크기는 덩어리에 포함된 칸의 수입니다. 그림에서 석유 덩어리의 크기는 왼쪽부터 8, 7, 2입니다. 시추관은 위 그림처럼 설치한 위치 아래..

javascript의 .map 파일

.map 파일은 본론부터 말하자면 개발자가 디버깅하기 편하게 원본파일 - 특정 코드와의 매핑 파일로써 존재하는 파일이다. 특정 코드는 TypeScript 일수도, UglifyJS, minifyJS일수도 있다. (*UglifyJS: 난독화된 자바스크립트, minifyJS: 압축된 자바스크립트) 임베디드에서도 map 파일은 전역변수,함수의 주소를 기록해놓은 파일로써 존재한다. javascript도 그런 개념으로 map 파일을 가지고 있다. javascript는 에러가 발생했을 때 특정 행, 칼럼에 대한 정보를 주지 않는다. 따라서 원본과의 매핑파일인 source map 을 이용해서 디버깅하면 편한 것이다. 더 정확하게 설명한 source map은 압축된 코드와 압축된 코드를 Base64 기반으로 매핑한 데이..

개발/javascript 2023.11.19
728x90
728x90