일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- StringBuffer
- 다형성
- 백준
- Java
- 접근제어자
- 제태크
- 현금흐름표
- 무디스
- 객체지향
- javascript
- 알고리즘
- mco
- 주린이
- 프로그래머스
- object
- 그리디 알고리즘
- etf
- 오버라이딩
- XLF
- 기업분석
- 금리인상
- 배당성장
- 미국주식
- 금리인하
- 잉여현금흐름
- 주식
- FCF
- S&P500
- 인플레이션
- 자바
- Today
- Total
목록코딩공부 (17)
오늘의하루
1) 문제발견프로젝트에서 각 화면 별 Controller가 JSP를 호출할 때, Model에 로직 수행 후 결과를 담으며 다른 Controller에서는 매개변수가 있을때 그 매개변수에 세팅을 해줘야 하는 구조로 설계되었습니다. 총 100개 이상의 화면이 존재하는 상황에서 프로젝트 완료 시점에 Controller의 매개변수가 수정되는 문제가 발생했습니다. 이로 인해 각 Controller에서 매개변수를 개별적으로 수정해야 하는 비효율이 생겼고 이는 코드의 일관성과 유지 보수에 큰 부담이 되었습니다.2) 해결이 문제를 해결하기 위해 AOP(Aspect-Oriented Programming)를 도입했습니다. AOP를 통해 매개변수 관리 로직을 중앙 집중화하여 코드의 가독성과 유지 보수성을 극대화했습니다. 구체..
프로젝트 중 각 화면에 개별적으로 구현된 공통 기능들을 Footer와 같은 방식으로 항상 화면에 표시되도록 통합하고 디자인팀과 협력해 시각적인 디자인을 다듬어서 사용자 경험을 개선했으며 이를 통해 유지 보수성을 향상시켰습니다.1) 배경프로젝트에서 여러 화면에 공통된 기능이 있었으나 이를 개별적으로 구현한 방식은 사용자 편의성과 유지보수성에서 부족함이 있었습니다.이 문제에 대해 회의를 통해 공통 기능을 하나의 인터페이스로 통합하고 사용자에게 언제든지 접근할 수 있는 형태로 구현하도록 하였으며 해당 작업을 담당하게 되었습니다.2) 해결 방법 도출먼저 네이버의 오른쪽 하단에 위치한 스크롤 버튼 및 설정 버튼에서 영감을 얻어 공통 기능을 한 곳에 모아 사용자 편의성을 높이고자 했습니다.처음에는 버튼을 일렬로 배..
1) 문제 발견회사에서 사용 중인 AUIGrid라는 외부 라이브러리를 분석하던 중 사용자 입력을 바탕으로 그리드를 생성하는 과정에서 XSS(Cross-Site Scripting) 취약점이 존재함을 확인했습니다.AUIGrid는 사용자 입력을 직접 HTML에 삽입하는 InnerHTML 방식을 사용하는데 이는 악의적인 스크립트가 웹 페이지에 주입될 수 있기 때문에 시스템 보안에 심각한 위협이 될 수 있습니다.2) 문제 정의XSS 공격은 공격자가 웹 페이지에 악성 스크립트를 삽입하여 웹 애플리케이션의 정상적인 동작을 방해하거나 사용자의 민감한 정보를 탈취하는 공격 기법입니다.AUIGrid의 경우 사용자가 입력한 데이터가 필터링 없이 HTML에 직접 반영되기 때문에 공격자가 악의적인 스크립트를 입력하여 웹 페이지..
SQL의 함수에는 단일 행 함수와 그룹 함수로 나눠진다. 단일 행 함수 각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환 그룹 함수 특정 행들의 집합으로 그룹이 형성되어 적용되기 때문에 그룹 당 1개의 결과만 반환 문자 처리 함수 LENGTH, LENGTHB, INSTR, INSTRB 함수는 반환 값이 NUMBER이고 이를 제외한 나머지 함수의 반환 값은CHARACTER형이다. LENGTH(CHAR / STRING), LENGTHB(CHAR / STRING) SELECT LENGTH('HELLO'), -- 길이를 반환 (5) LENGTHB('HELLO'), -- 문자열 BYTE로 변환해서 반환 (5) LENGTH('안녕'), -- 길이를 반환 (2) LENGTHB('안녕'), -- BYT..
const x = "x"; //
구문 arr.reduce(callback[, initialValue]) callback은 4가지 인수를 받을 수 있습니다. accumulator currentValue currentIndex array 예제_1 [1,2,3,4,5].reduce((accumulator, currentValue)=>accumulator + currentValue); // initialValue 없는 경우 과정 1번째 호출 accumulator : 1 / currentValue : 2 / currentIndex : 1 return : 3 2번째 호출 accumulator : 3 / currentValue : 3 / currentIndex : 2 return : 6 3번째 호출 accumulator : 6 / currentVa..
Javascript에서 arguments는 매개변수가 아닌 인자를 받는 배열과 유사한 형태가 나타납니다. function sum(){ _sum = 0; for(int i = 0; i < arguments.length; i++){ document.write(i + " : " + arguments[i] + " "); _sum = _sum + arguments[i]; //_sum + = arguments[i]; } return _sum; } document.write("result : " + sum(1,2,3,4)); //결과값 : 10 sum() 함수에는 매개변수가 없는 상태지만 가장 아래 부분에 sum(1,2,3,4)의 인자를 arguments가 인식하여 arguments = [1,2,3,4]가 되고 ar..
javascript에서 자주 사용하는 let과 var에 사용방법과 차이에 대해 알아보겠습니다. 변수 선언 javascript에서 변수를 선언하는 방법으로는 const, let, var 이렇게 세 가지 방법이 있습니다. const 변하지 않고 항상 같은 값을 나타낼 때 사용한다. const id = "오늘의하루"; const password = "12345"; //id와 password는 절대 변하지 않는 상수입니다. password = "asdf"; //이렇게 변경하려고 하면 에러가 나옵니다. 위에서 선언한 id와 password는 절대 변하지 않는 상수입니다. 호이스팅 javascript를 실행하기 전 선언된 변수 및 함수를 모두 모아 유효 범위 최상단에 선언하게 되고 이를 실행하는 것을 말한다. va..
C언어를 통해 피라미드를 만들고 나서 심심해서 만들어본 다이아몬드 키우기 게임 혹시 C언어로 피라미드를 만들어보신 적이 없으시면 아래 글을 참고해주세요. 2022.04.21 - [코딩공부] - C언어 피라미드, 마름모 별찍기(for문 연습) C언어 피라미드, 마름모 별찍기(for문 연습) C언어를 배우면 for문에서 무조건 나오는 피라미드와 마름모 별(*)찍기에 대해 글을 작성하였습니다. 여기서 사용되는 것은 이중 for문이며 간단한 덧셈 곱셈만 할 줄 안다면 만들 수 있습니다. 사 jangto.tistory.com 다이아몬드 키우기 게임 #include #include #include void size(); int num1; int num2; int answer; int level = 1; int ma..
C언어를 배우면 for문에서 무조건 나오는 피라미드와 마름모 별(*)찍기에 대해 글을 작성하였습니다. 여기서 사용되는 것은 이중 for문이며 간단한 덧셈 곱셈만 할 줄 안다면 만들 수 있습니다. 사각형 만들기 우선 이중 for문을 이용해 사각형을 먼저 만들어 보겠습니다. #include int main(void) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { printf("*"); } printf("\n"); } return 0; } 첫번째 for문은 몇번을 반복할 것인지를 나타내고 두번째 for문은 어떻게 별(*)을 찍을 것인지를 나타내는 것입니다. 사격형 만들기 결과 왼쪽으로 붙은 직각 삼각형 만들기 #include int main(vo..