전체 글 175

[JS] vanilla JS로 Ajax 통신하기

ajax 통신은 많이 써봤지만 vanilla js 에서 ajax 통신은 안써본것같아서 공부해보려고 한다. 자바스크립트로 ajax통신을 할 때 흔히 jquery를 사용하지만, 순수 javascript를 통해 ajax 통신을 할때는 XMLHttpRequest 라는 API를 이용한다. XML은 원래 XML만을 전송하는 목적을 갖고 있었지만, JSON 이나 일반 텍스트는 물론 파일까지도 전송이 가능하다. AJAX라는 이름도 비동기 자바스크립트와 XML이다. (Asynchronous JavaScript And XML) POST방식은 GET방식과 거의 같지만, setRequestHeader()를 통해 헤더설정을 추가해야한다. 또한 전송할 데이터도 url이 아닌 .send()메소드 안에 넣어서 전송해야함.

JAVASCRIPT 2022.11.20

CI / CD (지속적통합 / 지속적제공) 개념 - 개발자배찌

CI/CD - 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포 - 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법. - 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션. "CI" - 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration) - CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. “CD" - 지속적인 서비스 제공(Con..

개발환경 2022.11.14

[코테준비 python] - 이진탐색 알고리즘 - 개발자 배찌

순차탐색 - 리스트 안에 있는 특정한 데이터를 찾기 위해서 앞에서부터 데이터를 하나씩 확인하는 방법 이진탐색 - 정렬되어있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 - 시작점, 끝점, 중간점 을 이용하여 탐색 범위 설정 파이썬에는 이진탐색 라이브러리가 잘 되어있다.!! 이를 활용하여 문제를 풀면 개꿀~~😛 bisect_left(a,x) 정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 왼쪽 인덱스를 반환 bisect_right(a,x) 정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 오른쪽 인덱스를 반환 이진탐색을 이용한 문제 유형 - 파라메트릭 서치 : 최적화 문제를 결정문제(예, 아니오)로 바꾸어 해결하는 기법. 예를들면, 특정한 조건을 만족하는 가장 알맞은 값을 빠르..

알고리즘 (JAVA) 2022.11.10

[코테준비 python] 유클리드 호제법, 재귀함수 - 개발자 배찌

유클리드 호제법 : 두 자연수 A,B에 대하여 A를 B로 나눈 나머지를 R 이때 A,B의 최대공약수는 B와 R의 최대공약수와 같다. 대표적인 예제 : 두개의 자연수에 대한 최대공약수를 구하는 문제 (유클리드 호제법과 재귀함수* 이용) def gcd(a,b): if a%b == 0: return b else : return gcd(b, a%b) print(gcd(192,162)) * 재귀함수 -> 자기자신을 다시 호출하는 함수 종료조건을 반드시 명시하여 무한히 호출되지 않도록 해야함. >> DFS 알고리즘에서 자주 사용된다.

알고리즘 (JAVA) 2022.11.03

[코테준비 python] 스택, 큐 자료구조 - 개발자 배찌

스택 자료구조 LIFO(LAST IN FIRST OUT) , 프링글스를 떠올리면 됨! stack.append(5) stack.pop() stack.append(2) stack.append(3) stack.append(1) print(stack[::-1]) #스택에 쌓인 반대로 출력 [1,3,2] print(stack) #스택에 쌓인 순서대로 출력 [2,3,1] 큐 자료구조 FIFO(FIRST IN FIRST OUT) from collections import deque queue = deque() queue.append(5) queue.popleft() queue.append(3) queue.append(2) queue.append(1) queue.popleft() print(queue) #큐에 쌓인 순..

알고리즘 (JAVA) 2022.11.03

[코테준비 python] 그리디알고리즘, 구현 알고리즘 - 개발자 배찌

🐙그리디 알고리즘🐙 - 탐욕법 - 현재상황에서 지금당장 좋은것만 고르는 방법 - 공부한 문제 🐙구현 알고리즘🐙 - 풀이는 쉽지만 코드로 구현하기 어려운 문제 - 시뮬레이션 문제, 완전탐색 문제 - 2차원 공간에서의 방향벡터가 자주 활용됨 #동,북,서,남 dx=[0,1,0,-1] dy=[1,0,-1,0] #현재위치 x,y=2,2 for i in range(4): #다음위치 nx=x+dx[i] ny=y+dy[i] print(nx,ny) - 공부한 문제

알고리즘 (JAVA) 2022.11.02

[java] @RequestParam, required, defaultValue, @ModelAttribute - 개발자 배찌

@RequestParam(required = true) Required 는 파라미터 필수 여부 기본값은 true >> 파라미터가 없으면 에러발생. @RequestParam(required=true, defaultValue=“test”) defaultValue가 있으므로, required가 의미가 없어짐 @RequestParam(required=false) int age 이 경우에 age값이 null로 들어올 경우 Int라서 에러발생. -> null을 허용하는 Integer로 써주는게 좋음. 파라미터를 Map형식으로 받을 경우, 하나의 키값이 여러개의 Value값이 있을 때는 MultiValueMap으로 받아준다. 파라미터에 @ModelAttribute HelloData helloData 이런식으로 객체로..

JAVA 2022.11.01

[Java] @ResponseBody, @RestController, @Controller - 개발자 배찌

내가 궁금했던 부분은 ResponseBody와 RestController 둘다 View를 거치지 않고, 데이터를 직접 return시키는데, 둘의 차이점은 뭘까? 생각함! @ResponseBody + @Controller = @RestController 공통점은? @Controller와 다르게 @ResponseBody와 @RestController는 View를 거치지 않고, 직접 데이터를 return 한다는 것. 😛참고 Url😛 https://happiness-life.tistory.com/m/entry/1-Controller-ResponseBody-RestController-%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 [Spring] @Controller / @Re..

JAVA 2022.11.01

[Java] 핸들러(Handler), 핸들러맵핑(Handler Mapping), 핸들러어댑터(Handler Adapter) - 개발자 배찌

회사에서 Java 서버단을 뒤지다가 Handler가 사용된 코드들이 보였다. Handler??? 분명 강의들으면서 공부했는데..!! 다시 떠올리니 그게 무엇인지, 어떤기능인지,, 설명하지 못한 나 자신… 다시 공부하기로 마음먹었다…. 내 기준에!!!! handler를 잘 모른다면 Java개발자야! 라고 말할 수 없다고 생각한다!!!! 스프링 MVC의 핵심인 DispatcherServlet.java…. 요녀석이 중요!! 스프링 MVC의 프론트컨트롤러이다. Why??? 스프링 MVC 동작원리 Http 요청 -> FrontController(=DIspatcherServlet) -> 핸들러 매핑정보 조회 -> 핸들러 어댑터 조회-> 핸들러 호출 -> ModelAndView반환 -> ViewResolver 호출 ..

JAVA 2022.10.25

[Java] 인증번호 1분에 최대 5번만 호출 - 개발자 배찌

인증번호 1분에 최대 5번만 호출하게끔 하는 로직을 Js에서 제어했다가, Count값을 Console에서 바꾸면 사용자 마음대로 제어가 되버리기때문에 로직을 바꿔달라고 했다. “서버에서 세션에 값을 넣어서 제어해주세요” 아래 코드를 서버단에 인증번호 클릭할때 타는 로직 맨 앞에 넣어두었다. int smsAuthCount = HcsSessionUtil.getSessionValue(request, “smsAuthCount”) == null ? 0 : HcsStringUtil.parseInt((String) HcsSessionUtil.getSessionValue(request, “smsAuthCount”)); long currentTime = System.currentTimeMillis(); long auth..

JAVA 2022.10.24