๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๊ฐœ๋ฐœ/JAVA24

[JAVA] The method getRealPath(String) from the type ServletRequest is deprecated WEB-INF ๊ฒฝ๋กœ์— ์žˆ๋Š” ํŠน์ • ํŒŒ์ผ์˜ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ๋Š”๋ฐ 'The method getRealPath(String) from the type ServletRequest is deprecated'๋ผ๋Š” ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ๋‹ค. request.getRealPath("/WEB-INF/xxx/xxx.txt"); ํ•ด๊ฒฐ๋ฐฉ๋ฒ• request.getSession().getServletContext().getRealPath("/WEB-INF/xxx/xxx.txt"); jsp์—์„  ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค! application.getRealPath("/WEB-INF/xxx/xxx.txt"); 2022. 3. 11.
[JAVA] com.fasterxml.jackson.databind.JsonMappingException: Invalid UTF-8 start byte 0xbf ์„œ๋ฒ„๋กœ ํ•œ๊ธ€์ด ํฌํ•จ๋œ json ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒˆ๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. com.fasterxml.jackson.databind.JsonMappingException: Invalid UTF-8 start byte 0xbf ํ•œ๊ธ€์„ ์ž…๋ ฅํ•˜๋Š” html์˜ contentType ๋ฐ pageEncoding์ด UTF-8๋กœ ์„ ์–ธ๋˜์–ด์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์„œ๋ฒ„์ชฝ์—์„œ UTF-8๋กœ ๋ฐ›์ง€ ๋ชปํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  json string์„ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋˜๋„๋ก ํ•˜์˜€์ง€๋งŒ ํ˜„์ƒ์€ ๋™์ผํ–ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 1 Run>Run Configurations์—์„œ Tomcat ์„ ํƒ ํ›„ Common ํƒญ์—์„œ Encoding์„ UTF-8๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2 Run>Run Configurations์—์„œ Tomcat ์„ ํƒ ํ›„ Arg.. 2022. 3. 8.
[JAVA] ๊ฐ์ฒด ๋ณต์ œ(clone)์™€ Shallow Copy, Deep Copy ๊ฐ์ฒด๋ฅผ ๋ณต์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Cloneable์„ ๊ตฌํ˜„ํ•˜๊ณ , clone() ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜๋ฉด ๋˜์„œ ๊ฐ„๋‹จํ•˜๋‹ค! @Getter @Setter public class Person implements Cloneable{ private String name; private int age; @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } } ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด person1.clone(); ์„ ์‚ฌ์šฉํ•˜์—ฌ person1์˜ ๊ฐ์ฒด๋ฅผ ๋ณต์ œํ•˜์˜€๋‹ค. Person person1 = new Person(); person1.setName("ํ™๊ธธ๋™"); person1.setAge(30); try { Person pers.. 2022. 2. 16.
[JAVA] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) : ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๋ฌธ์ œ์  ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€? ํ•œ๋งˆ๋””๋กœ ์ •์˜ํ•˜์ž๋ฉด '๊ฐ์ฒด๋ฅผ ๋‹จ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด'! static์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์–ต์„ ์–ป์œผ๋ฉฐ, ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ(ํด๋ž˜์Šค)์—์„œ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ณตํ†ต๋œ ๊ฐ์ฒด๋ฅผ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ ๋œ๋‹ค. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ๋ณธ์ธ๋„ ์‹ฑ๊ธ€ํ†ค ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜์˜€๋Š”๋ฐ, ์ด๋Ÿฐ ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„  ๋‘๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ getInstance()๋ฅผ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ ๋‘๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. (= ๋™์‹œ์„ฑ ๋ฌธ์ œ, thread unsafe) public class Singleton { private static Singleton singleton = null; pri.. 2022. 2. 10.
[JAVA] Priority Queue(์šฐ์„ ์ˆœ์œ„ ํ) ์šฐ์„ ์ˆœ์œ„ ์กฐ๊ฑด ๋ณ€๊ฒฝํ•˜๊ธฐ Priority Queue FIFO(First In First Out)์ธ ์ผ๋ฐ˜์ ์ธ Queue์™€ ๋‹ค๋ฅด๊ฒŒ Priority Queue๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € Out๋œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ •๋ ฌ ๊ธฐ์ค€์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ Comparator, Comparable๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. Integer๋Š” Collections.reverseOrder()๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. PriorityQueue pq = new PriorityQueue(Collections.reverseOrder()); pq.add(5); pq.add(7); pq.add(10); pq.add(3); System.out.println(pq.poll()); // 10 ์ถœ๋ ฅ add๊ฐ€ ์•„๋‹Œ.. 2022. 2. 7.
[JAVA] ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‚ค ์ œํ•œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ : Illegal key size ๊ฐœ๋ฐœ ์ค‘ ๋Œ€์นญํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด์•ผํ•  ์ƒํ™ฉ์ด ์ƒ๊ฒผ๋Š”๋ฐ(DESede/CBC, DES/CBC, AES/CBC ๋“ฑ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด์šฉ), 192 ํ˜น์€ 256 bit์˜ ๋Œ€์นญํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋ฅผ ํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. java.security.InvalidKeyException: Illegal key size ์›์ธ์„ ์ฐพ์•„๋ณด๋‹ˆ Java๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ JCE ์ •์ฑ…์„ ์ œ๊ณตํ•˜๋Š”๋ฐ ์ด ์ •์ฑ…์€ ๋ฏธ๊ตญ์˜ ์ •์ฑ…์— ๋”ฐ๋ผ 128 bit๋กœ ํ‚ค ๊ธธ์ด๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์–ด์„œ ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ์ด๋‹ค. ์ด ์ •์ฑ…์€ /jre/lib/security/local_policy.jar์˜ default_local.policy ํŒŒ์ผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ •์ฑ… ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. // Some countries have import limit.. 2022. 1. 26.
[JAVA] class file for javax.interceptor.InterceptorBinding not found SBA(Spring Boot Admin)์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— 'spring-boot-admin-starter-client' ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ ํ–ˆ๋‹ค. java: cannot access javax.interceptor.InterceptorBinding class file for javax.interceptor.InterceptorBinding not found Consult the following stack trace for details. com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.interceptor.InterceptorBinding not found ๊ทธ ์ „์— build๊ฐ€ ์ž˜ ๋๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ.. 2022. 1. 26.
[JAVA] Optional ๊ฐœ๋… ๋ฐ ์‚ฌ์šฉ๋ฒ•, ์˜ˆ์ œ 1. Optional์ด๋ž€? ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด NullPointException(NPE)์„ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„  null์„ ์ฒดํฌํ•˜๋Š” ๋กœ์ง์ด ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค. DeviceVo deviceVo = deviceDao.findById(deviceId); //id์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด deviceVo๋Š” null์ด๋‹ค. deviceVo.getName(); //deviceVo๋Š” null์ด๊ธฐ ๋•Œ๋ฌธ์— NullPointException์ด ๋ฐœ์ƒํ•œ๋‹ค. deviceVo.getModel().getModelId(); //deviceVo๊ฐ€ null์ด ์•„๋‹ˆ๋”๋ผ๋„ Model์ด null์ด๋ฉด NullPointException์ด ๋ฐœ์ƒํ•œ๋‹ค. if(deviceVo != null){ d.. 2022. 1. 21.
728x90
๋ฐ˜์‘ํ˜•