본문 바로가기

IT

인터넷속도(다운로드,업로드) 체크해주는 사이트 2곳 회사 컴퓨터가 사이트 이동은 무리없이 되는데 첨부파일 업로드 속도가 극악이라 멘붕.... 여러가지 검색을 해보고 내 상태를 일단 체크하기로 했다. 속도체크를 하려는곳은 업로드와 다운로드를 모두 체크가 가능한 곳. 그리고 크로스 체킹을 위해 최소 2곳 선정. 1. 스피드체크(https://www.speedcheck.org/ko/) 스피드체크는 테스트 실행 및 간단한 인터넷 지식을 알려주는 사이트다. 사이트에 들어가서 '테스트 시작' 클릭 바로 테스트가 시작된다. 체크하는 총 3가지는 지연속도, 다운로드, 업로드 속도체크를 한다. 체크한 내용을 위와 같은 화면으로 보여준다. 업로드 속도가 최악이다.. 10mpbs 아래로 떨어져 있다면 비대칭구조를 의심해봐야 하고 인터넷회사에 전화가 필요하다. 2. fast...
웹기획과 개발자 개발을 하다 보면현업한테 바로 수정사항을 전달받아 진행하는 일이 있다. 현업한테 곧바로 전달받으면대부분은 내용 전달이 안되고예외사항이 전혀 고려되지 않아 일일이 물어보다가'예전과 동일하게 해주세요'라는만능대답을 듣고 결국 개발자가 임의로 처리하고운영에 반영해서야 다시 수정을 요청한다. 몇개월 지나 자신이 요청한 걸뒤집는 요청을 하는 게비일비재하다. 그럼 다시 설명을 해야되고결국은 다시 수정을 한다. 나름 체계가 있는 회사는 기획부서를 하나 두어현업들의 요구사항을 체계적으로 정리해개발자들의 부족한 업무부분을 보충해주고깔끔한 UI와 UX를 고려한 화면 배치를 한 스토리보드(화면설계서)를 전달해준다. 또한 기획자는 화면에 필요한 디자인 요소를미리 디자인 부서에 요청해 개발자에게 전달하기도 한다. 화면에 대한 ..
로드 밸런싱 설정에 따른 302 코드 대처 얼마 전 신기한 일이 벌어졌다. 로그인만 하면나가기 버튼이 눌러지는 것이다. 그 전 소스코드 변경은 없었는데 말이다.여기에서 바로 서버 문제를 의심했어야 했다. 하지만 개발자는 일단 자신의 소스를 믿을 수 없으므로내부에서 문제를 찾게 된다. 처음엔 내부 프로그램 충돌을 의심했었다.내부 프로그램이 64비트일 경우와32비트일 경우 충돌률이 달랐기 때문이다. 하지만 그건 우연의 일치였다는 게 밝혀지고 다시 원점으로 돌아갔다. 그 다음엔 spring security 설정을 의심했었다.getPrincipal의 값이 null이 나왔기 때문이다. 아무리 stackofflow나 구글링을 해봐도해당 버그는 발견되지 않았다. spring security에서 인증을 마친 사용자라면getPrincipal()을 했을 경우커스텀..
ajax 중복호출 방지 코드 작성 - setTimeout을 통한 ajax를 사용하다 보면 중복호출을 막아야 할 때가 발생한다. 단순히 페이지를 이동하는 게 아니라 ajax 호출 시 등록이나 결제요청 시 중복 요청이 이뤄질 수 있기 때문이다. 갑자기 통신이 느려져 사용자가 버튼을 여러번 클릭하다보면 똑같은 내용의 글이 여러개 등록되는 경우가 나오거나 중복결제가 되는 현상이 발생하는 것이다. 따라서 앞의 내용을 처리하고 해당 내용을 처리해주거나 처리 중일 땐 alert 메시지를 띄워주는 것이 중요하다. 보통 블로그에서 찾아보면 element를 bind, unbind 식으로 아예 클릭 자체를 막아놓는 경우도 있는데 이번에 내가 사용한 방법은 바로 setTimeout 메소드를 활용한 방법이다. 123456789101112131415161718192021222324252627..
JAVA로 XML파일 만들기 지난 번 포스트와 이어지는 포스팅 java로 모델을 만든 후 javax.xml.bind.annotation을 이용해 애노테이션 설정을 해준다. 그렇게 만들어진 정보들을 java에서는 손쉽게 xml로 변환할 수 있다. 1234567891011filename = "fruit.xml"; File file = new File("파일패스", filename);JAXBContext jaxbContext = JAXBContext.newInstance(Fruit.class);Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printedjaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_O..
java로 XML 모델 설정하기 자바의 rt.jar에는 javax.xml.bind.annotation이라는 게 존재하다. XML 속성값을 지정하기 위해서 애노테이션으로 속성을 저장할 수 있다. 일단 코드로 보면 1234567891011121314151617181920212223242526272829303132package test; import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType; @XmlRootElement(name = "CustomField")@XmlType(propOrder = {"name", "value"})public class Custom..
swagger(스웨거)에서 sample model 선택해서 노출하기 swagger는 REST API를 개발할 때 쉽게 테스트를 하게 도와주는 API다. 내가 코드를 만들 때 설정해놓은 샘플코드를 노출시키므로 손쉽게 테스트할 수 있다. ApiModel, ApiModelProperty 등의 간단한 애노테이션 설정으로 전체적인 설정을 건드릴 수 있다. 가끔 sample model 에서 필요없는 parameter를 삭제하고 싶을 때 쓰는 option을 소개한다. @ApiModelProperty(value = "시간", required = false, example = "20171112", hidden = true) value : 해당 파라미터 한글 설명required : 필수 여부(true/false)example : 샘플 데이터 설정hidden : 숨김여부 (true/fals..
DB별 XML 매핑 다르게 하기 가볍게 혼자 프로젝트하거나,학원에서 팀플을 할 때는DB가 하나였기 때문에 별 걱정없이 쓰던 기능도 DB가 늘어나면 걱정거리들이 생긴다. Database-Context.XML 파일에서 간단한 설정을 해주면각 DB마다 SQL XML 매핑설정을 다르게 할 수 있다. 12345678910111213141516171819202122232425 classpath:mybatis/common/common-query.xml classpath:mybatis/special/special-query.xml Colored by Color Scriptercs 만약 special 과 공통(common) DB가 있다면 각 DB별 query.XML을 매핑 가능하다. 단 그 dataSource를 주입하는 Dao를 사용해야 가능하다는 점..