전체 글 32

javascript identifier '변수명' has already been declared 해결 방법, switch문의 block-scope 변수 선언.

목차 identifier 오류 내용 identifier '변수명' has already been declared 원인 1. ES5 까지는 var 를 사용했지만, ES6 부터는 var 대신 let 과 const 를 사용. var : 중복 선언 가능, 재할당 가능, 함수 레벨 스코프 let : 중복 선언 불가능, 재할당 가능, 블록 레벨 스코프 const : 중복 선언 불가능, 재할당 불가능, 블록 레벨 스코프 var let const 중복 선언 O X X 재할당 O O X 스코프 함수 레벨 블록 레벨 블록 레벨 블록 레벨 스코프 : 모든 코드 블록 ( 함수, if문, switch문, try/catch문 등 ) 내에 선언된 변수는 코드 블록 내부에서만 사용할 수 있다. 함수 레벨 스코프 : 함수 내에서 선언..

개발/프론트 2023.12.20

아이폰 사파리에서 window.open 또는 form _blank 로 새 창이 안열리는 문제 해결

목차 원인 safari에서는 비동기 호출 후 window.open 또는 form _blank로 새 창을 열 경우 열리지 않는다. 사파리는 비동기 콜 안에서 window.open으로 연 팝업을 차단한다고 한다. 해결 방법 방법 1. 사파리 설정에서 팝업 차단 해제하기 설정 -> safari -> 팝업 차단 해제 방법 2. 비동기 콜 전에 window.open 먼저 하기 * 문제가 되는 코드 // 예시 1 // 비동기 콜 호출 후 open const result = await getData(); window.open("https://naver.com"); // 예시 2 // 비동기 콜 응답 받은 후 open axios.getData("/api") .then(function (response) { window..

개발/프론트 2023.12.20

[JAVA]xml오류-There is no getter for property named 'name' in 'class java.lang.String', 파라미터 전달 제대로 안될 때

목차 파라미터 하나를 보냈는데 There is no getter for property named 'name' in 'class java.lang.String' 라는 오류가 뜰 때, int getList(String name); SELECT count(*) FROM table WHERE id = #{name} ​ 방법 1. #{name} 을 다음과 같이 #{value} 로 변경해주면 된다. SELECT count(*) FROM table WHERE id = #{value} ​ 방법 2. getter 가 있는 VO를 만들어 파라미터로 넘긴다. getter 는 다음과 같이 만들 수 있다. 1. 롬복lombok 이용하기 @Getter public myVO{ private String name; } 2. 직접 ..

개발/백 2021.11.29

[JAVA] 스프링 Junit4 @Autowired NullpointException 문제 해결

목차 테스트 클래스 위에 다음과 같은 어노테이션을 붙여주면 된다. @RunWith( SpringJUnit4ClassRunner.class ) @ContextConfiguration(locations= {"classpath*:/spring/*.xml"}) //경로 변경 필수 @WebAppConfiguration public class junitTest { } 1. @RunWith ( SpringJunit4ClassRunner.class ) @RunWith는 JUnit 프레임워크의 테스트 실행 방법을 확장할 때 사용하는 어노테이션이다. SpringJUnit4ClassRunner라는 JUnit용 테스트 컨텍스트 프레임워크 확장 클래스를 지정해주면 , JUnit이 테스트를 진행하는 중에 테스트가 사용할 애플리케..

개발/백 2021.11.29

[JAVA/JSP]정확한 클라이언트 IP 주소 가져오기, request.getRemoteAddr() 해결 방법

[JAVA/JSP] request.getRemoteAddr() 로 정확한 IP 가 추출되지 않을 때 해결 방법, 정확한 클라이언트 IP 주소 가져오기 사용자 IP를 가져올때 보통 request.getRemoteAddr(); 을 사용해 가지고 오게 된다. 그러나 중간에 Load balancers 나 Procxy server 등이 개입되면서, request.getRemoteAddr() 함수로 IP 를 얻을 경우 다른 아이피가 나오게 된다. 이러한 문제를 해결하기 위해 등장한 것이 X-Forwarded-For 헤더이다. X-Forwarded-For 헤더에서 IP를 추출하면 정확한 IP를 얻을 수 있다. 그러나 X-Forwarded-For 헤더 외 WL-Proxy-Client-IP, Proxy-Client-IP..

개발/백 2021.11.05

SDK와 JDK의 차이점

목차 SDK ( Software Development Kit, 소프트웨어 개발 도구) 일반적으로 소프트웨어 기술자가 사용하여 특정한 소프트웨어 꾸러미, 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템, 운영체제 등을 위한 응용 프로그램 등을 만들 수 있게 해주는 개발 도구 집합. JDK (Java Development Kit, 자바 개발 도구) 자바 EE, 자바 SE, 자바 ME 플랫폼 중 하나를 구현한 것 윈도우, 리눅스, 맥 자바 개발 대상으로 오라클에 의해 바이너리 제품으로 제공된다. 자바만 개발할 수 있는 SDK 를 JDK 라고 한다.

etc 2021.11.01

JAVA SE, EE - 특징,차이점

목차 자바 프로그래밍 언어 플랫폼 모든 자바 플랫폼은 자바 가상 머신(JVM)과 어플리케이션 프로그래밍 인터페이스(API)로 구성되어 있다. 각각의 자바 플랫폼에서는 가상 머신과 API 를 제공하고, 타겟 플랫폼상에서 동작되도록 작성된 어플리케이션들이 자바 프로그래밍 언어의 장점들을 그대로 갖출 수 있게 한다. 자바 가상 머신 : 하드웨어와 소프트웨어 플랫폼에서 자바 기술을 사용한 어플리케이션을 동작시키기 위한 프로그램. API : 개발자들이 직접 컴포넌트나 어플리케이션을 만들 때 사용할 수 있는 소프트웨어 컴포넌트의 집합 표준 에디션 자바 플랫폼, JAVA SE 가장 기본이 되는 자바 표준 에디션 Java SE의 API 는 자바 프로그래밍 언어의 핵심 기능을 제공 기초적인 타입부터 네트워킹, 보안, 데..

etc 2021.11.01

계층별 프로토콜의 종류와 특징-이더넷,스위치,IP,라우터,ARP

📖이전글 OSI 7계층과 프로토콜-개념,프로토콜,기능 목차 1계층과 2계층의 중심 프로토콜, 이더넷 이더넷(Ethernet)은 컴퓨터 네트워크 기술의 하나로, 전세계에서 가장 일반적으로 사용되는 LAN에서 가장 많이 활용되는 기술 규격이다. 프레임을 만드는 방법 제 3계층의 패킷에 헤더나 FCS를 추가하여 프레임을 만든다. 제3계층(네트워크 계층으로부터 받은 데이터(패킷)에 프레임의 처음을 나타내는 프리앰블(preamble) 추가 목적지(수신자)와 출발지(송신자)를 나타내는 헤더 추가 비트 오류 체크에 사용하는 FCS(Frame Check Sequence) 를 추가 통신시 컴퓨터 식별 방법 MAC 주소라는 48비트로 된 식별자를 사용하여 컴퓨터를 식별한다. MAC주소란 네트워크 세그먼트의 데이터 링크 계..